wcf- restful介面 post方式呼叫報錯(遠端伺服器返回錯誤: 400 錯誤的請求)
wcf rest:不使用uritemplate使用post方式傳參解決http400問題以及引數對映問題
等等!標記自己遇到的問題原因,描述如下:
伺服器介面:
[webinvoke(method = "*", requestformat = webmessageformat.json, responseformat = webmessageformat.json)]
[operationcontract]
string getexptrainhist(string strjson);//入參為string型別
客戶端呼叫:
request.method = "post";
//*****=測試資料*****=start***************
exptrainhist_req t = new exptrainhist_req();
t.account = "exp";
t.fc = "exptrainhist_req";
t.starttime = "2017-04-17 13:00:00";
t.endtime = "2017-04-17 14:04:51";
string data = newtonsoft.json.jsonconvert.serializeobject(t);
//string inputstring = "c901411";
//*****=end**********=
string inputstring = data;
//string inputstring = "";
byte bytearray = system.text.encoding.utf8.getbytes(inputstring);
request.contentlength = bytearray.length;
stream rstream = request.getrequeststream();
rstream.write(bytearray, 0, bytearray.length);
rstream.close();
httpwebresponse response = (httpwebresponse)request.getresponse();//此處報錯:遠端伺服器返回錯誤: 400 錯誤的請求
stream stream = response.getresponsestream();
streamreader sr = new streamreader(stream);
string info = sr.readtoend();
string temp = newtonsoft.json.jsonconvert.deserializeobject(info).tostring();
sr.dispose();
部落格的問題原因:
注意:json格式預設為「」引起,所以 "\"ss\""不能寫為「ss」,否則還是http400錯誤。因為未識別資料,將資料拼接到其他位元組了吧。
自己的入參改為:
//首先將data的 json字串的雙引號改成單引號,再加上雙引號傳到服務,問題解決。
inputstring = "\"" + data.replace("\"","\'") + "\""
byte bytearray = system.text.encoding.utf8.getbytes(inputstring);
request.contentlength = bytearray.length;
stream rstream = request.getrequeststream();
rstream.write(bytearray, 0, bytearray.length);
rstream.close();
遠端伺服器返回錯誤 404 未找到
說明 執行當前 web 請求期間,出現未處理的異常。請檢查堆疊跟蹤資訊,以了解有關該錯誤以及 中導致錯誤的出處的詳細資訊。異常詳細資訊 system.net.webexception 遠端伺服器返回錯誤 404 未找到。源錯誤 行 20 public void listallproducts 行 2...
遠端伺服器返回錯誤 404 未找到。
乙個採集資料的程式。行 43 webrequest req webrequest.create urls 行 44 httpwebresponse httpreq httpwebresponse req.getresponse 報錯 行 45 stream s httpreq.getresponse...
WCF遠端呼叫無法識別伺服器名
下面我介紹一下我的問題 我開發了一寫wcf服務,採用iis進行host。由於這個專案涉及到跨區域的使用,因此我們的客戶申請了乙個固定公網ip位址。公網ip直接連線在路由器上,然後通過路由器的埠對映,將公網ip位址對映到內網ip位址。內網伺服器安裝windows2003,iis6.0。由於wcf預設發...