與其他人一樣在我面前,我在使用的IdHttp在2010年德爾福(印第安納波利斯10.5.5)組件的代碼工作正常在Delphi 7的煩惱:IdHttp POST方法德爾福2010
var
XMLString : AnsiString;
lService : AnsiString;
ResponseStream: TMemoryStream;
InputStringList : TStringList;
begin
ResponseStream := TMemoryStream.Create;
InputStringList := TStringList.Create;
XMLString :='<?xml version="1.0" encoding="ISO-8859-1"?> '+
'<!DOCTYPE pnet_imessage_send PUBLIC "-//PeopleNet//pnet_imessage_send" "http://open.peoplenetonline.com/dtd/pnet_imessage_send.dtd"> '+
'<pnet_imessage_send> '+
' <cid>username</cid> '+
' <pw>password</pw> '+
' <vehicle_number>tr01</vehicle_number> '+
' <deliver>now</deliver> '+
' <action> '+
' <action_type>reply_with_freeform</action_type> '+
' <urgent_reply>yes</urgent_reply> '+
' </action> '+
' <freeform_message>Test Message Version 2</freeform_message> '+
'</pnet_imessage_send> ';
lService := 'imessage_send';
InputStringList.Values['service'] := lService;
InputStringList.Values['xml'] := XMLString;
try
IdHttp1.Request.Accept := '*/*';
IdHttp1.Request.ContentType := 'text/XML';
IdHTTP1.Post('http://open.peoplenetonline.com/scripts/open.dll', InputStringList, ResponseStream);
...
finally
ResponseStream.Free;
InputStringList.Free;
end;
唯一的區別到目前爲止,這和D7代碼之間是我已經將字符串類型更改爲AnsiString,並添加了HTTP請求屬性。
我從服務器返回的響應是'XML無法解析。空格預計在第1行:位置:19',我假定XML在這個過程中的某個地方出現了亂碼,但我無法弄清楚我們要出錯的地方。
任何想法?