String response = IdHTTP1->Post(url, strm);
W zdarzeniu IdHTTP1_OnWork widzę, że poprawna ilość bajtów jest wysłana.
W odpowiedzi powinienem otrzymać strukturę JSON zawierająca pewne dane. Jednak otrzymuje wyłącznie pustą tablicę [] (tak jakbym serwer nie odebrał żadnych danych).
Autorzy aplikacji serwerowej udostępnili plik HTML do testowania wysyłania danych za pomocą którego wysłanie tego samego zestawu danych powoduje odebranie poprawnej odpowiedzi z serwera. Fragment kodu HTML odpowiedzialnego za wysyłanie wygląda następująco:
- Kod: Zaznacz cały
<form method="post" id="post_json" action="http://xxxxxxxxxxxxxx.com/api" target="_blank">
<input type="text" name="data" value="" id="post_json_data" />
</form>
Pytanie - gdzie popełniam błąd?
[EDIT]
Taki sam efekt mam kiedy próbuję wysłać dane w taki sposób:
MPFDStream->AddFile("data", "C:\\Plik01.json", "text");
String response = IdHTTP1->Post(url, MPFDStream);
Natomiast pewien (połowiczny) efekt otrzymuję kiedy wysyłam tak:
tresc->LoadFromFile("C:\\Plik01.json");///
TIdMultiPartFormDataStream* MPFDStream = new TIdMultiPartFormDataStream();
MPFDStream->AddFormField("data", tresc->Text.Trim());
// Wysylanie
String response = IdHTTP1->Post(url, MPFDStream);
W takim przypadku otrzymuję w odpowiedzi coś takiego (co podobno ma oznaczać 'brak danych' na wejściu):
<b>Warning</b>: Invalid argument supplied for foreach() in <b>/module/Application/src/Application/Controller/ApiController.php</b> on line <b>253</b> |