任何人都知道为什么我会收到此错误。我正在尝试发送POST请求,这是我收到的错误消息。
服务器响应:
Error while dispatching hrxml [ Server was unable to process request. --> Procedure or function 'sp__LogMessage' expects parameter '@pi_ClientID', which was not supplied. at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
at DispatchService.HRISMessageRouter.MessageRouter.Route(String HRXML)
at DispatchService.DispatchMessage.Dispatch(String HRXML)]
我的代码:
URL link = new URL("https://example.com/example.asp");
HttpsURLConnection com = (HttpsURLConnection) link.openConnection();
String l;
con.setRequestMethod("POST");
con.setDoInput(true);
con.setDoOutput(true);
con.setRequestProperty("name", "rrrrr");
con.setRequestProperty("pwd", "ffff");
OutputStream os = con.getOutputStream();
os.flush();
InputStream is = con.getInputStream();
BufferedReader rd = new BufferedReader(new InputStreamReader(is));
StringBuffer r = new StringBuffer();
while((l = rd.readLine()) != null) {
r.append(l);
r.append('\r');
}
rd.close();
System.out.println("out "+ r.toString());
我已经尝试过调试代码等,但仍无法找到可能的原因来解决这个问题。任何人都可以帮我弄清楚这个问题的原因和可能的解决方案吗?
答案 0 :(得分:2)
错误消息是:
服务器无法处理请求。 - >过程或函数'sp__LogMessage'需要参数'@pi_ClientID',这是未提供的。
这看起来像服务器上的SQL存储过程。检查以确保为其提供客户端ID。
答案 1 :(得分:1)
从堆栈跟踪判断:
但这与客户端代码的作用无关。实际上,您正在发送带有参数的POST请求,这将变成一个请求体,可能编码为application/x-www-form-urlencoded
...而不是XML。那不行。