|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
TNetHTTPClient. Отправка Delphi POST на PHP скрипт JSON
Версия: Delphi 10.4
Доброго, давно не работал с Delphi, да и раньше ни разу не пытался даже работать с внешними PHP запросами и тем более JSON. не работает отправка, через NetHTTPClient компонент. Точнее странно, смотрел возвращаемую строку , говорит "ОК", полагаю, что проблем на стороне Delphi не возникло, тогда что-то неправильно на стороне PHP получается? Не могу понять, не получается разобраться. В PHP всегда массив $_POST пустой, на проверке "$_POST[json]" не установлен даже. Delphi -код, отправка через POST тестово выглядит так (статус текст "ОК"). Это текущий код, я уже перепробовал разные способы и без Params (а значение переменной заносил напрямую в POST, только Source задействовал. В общем, в любом случае результат один и тот же. Код:
var NetHTTPClient : TNetHTTPClient; params,jsonbuf : TStringStream; json: TJSONObject; jsonstr: string; r : IHTTPResponse; begin NetHTTPClient := TNetHTTPClient.Create(nil); try NetHTTPClient.ContentType := 'application/json; charset=utf-8'; //NetHTTPClient.AcceptEncoding := ; NetHTTPClient.AcceptCharSet := 'UTF-8'; NetHTTPClient.OnValidateServerCertificate := OnNetHTTPClientValidateServerCertificate; json := TJSONObject.Create; json.AddPair('Name1','Value1'); json.AddPair('Name2','Value2'); json.AddPair('Name3','Value3'); jsonstr := json.ToJSON; jsonbuf := TStringStream.Create(jsonstr, TEncoding.UTF8); params := TStringStream.Create('json=true&s=test'); try //r := NetHTTPClient.Post('https://'+WWW_HOST, jsonbuf,params); Result := NetHTTPClient.Post('https://'+WWW_HOST+'/?json=true&s=test', jsonbuf).ContentAsString(TEncoding.UTF8); //Result := r.StatusText; - возвращает "OK" //memo1.Lines.Clear; //memo1.Lines.Add('Response: '+Result); //memo1.lines.Add('JSON-String:'+jsonstr); finally params.Free; jsonbuf.Free; FreeAndNil(json); end; finally NetHTTPClient.Free; end; end; PHP - обработчик выглядит так: PHP код:
Смотрел примеры и видел схожие проблемы , чаще с упоминанием idHTTP, что-то там рекомендации не помогли. Последний раз редактировалось papaper, 02.08.2021 в 22:39. |