從一個介面地址,用戶名和密碼,兩個引數(訂單號,產品號),查詢產品明細資料資訊。應該要怎么寫陳述句呀,參照網路上面的,
url:= 'http://aa.aabo.cn:8088/WebService/QRService.asmx/GetHgzForALL",{"account": "user1","password": "user123","data": [{"productCode": "010059252","quantity": "2"}]}'
jsonstr := IdHTTP.Get(url);
是哪邊錯了呀提示"http/1.1 400 bad request"
uj5u.com熱心網友回復:
是webservice,沒必要用http控制元件來獲取結果,直接呼叫webservice就可以了。uj5u.com熱心網友回復:
參考這種寫法http://blog.csdn.net/cb168/article/details/8817830
uj5u.com熱心網友回復:
能不能給一個示例呀。不會正在學uj5u.com熱心網友回復:
這是因為介面的回傳 status code : 400 ,但是你使用的 post 方法不支持這種狀態的問題!你要解決的是怎么讓請求支持 code = 400的回傳。解決了,可以分享下,我現在也在這個坑里面。哈哈
uj5u.com熱心網友回復:
發一個我的通用版
sendrecord=record
ord:integer;
num:string;
url:string;
host:string;
refer:string;
useragent:string;
accept:string;
myheader:string;
cookie:string;
postdata:string;
acceptencoding:string;
contenttype:string;
ProxyServer:string;
ProxyPort:integer;
image:tmemorystream;
yzm:string;
tag:string;
end;
var
send:sendrecord;
send.url:='http://aa.aabo.cn:8088/WebService/QRService.asmx/GetHgzForALL';
send.postdata:='{"account": "user1","password": "user123","data": [{"productCode": "010059252","quantity": "2"}]}'';
if (send.postdata='') and (post=false) then gethttp.Get(send.url,response)
else
begin
postd:=tstringstream.Create('');
try
postd.WriteString(send.postdata);
http.Request.ContentLength:=postd.Size;
http.post(send.url,postd,response);
finally
postd.Free;
end;
end;
直接用get應該也可以要改下格式,send.url:=send.url+'&account='+'user1'+'&password='+'user123'+...
uj5u.com熱心網友回復:
把網站發我,可以做個樣例給你轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/35966.html
標籤:VCL組件開發及應用
