0

なぜこのエラーが発生するのか誰でも知っています。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());

コードなどのデバッグを試みましたが、これが発生した理由の考えられる理由をまだ見つけることができません。この問題の理由と考えられる解決策を理解するのを手伝ってくれる人はいますか?

4

2 に答える 2

2

エラーメッセージは次のとおりです。

サーバーは要求を処理できませんでした。--> プロシージャまたは関数 'sp__LogMessage' には、指定されていないパラメーター '@pi_ClientID' が必要です。

これは、サーバー上の SQL ストアド プロシージャのように見えます。クライアント ID が提供されていることを確認してください。

于 2012-06-02T04:53:03.890 に答える
1

スタックトレースから判断すると:

  1. アプリケーションがSOAPサービスと通信しています
  2. SOAPサービスは、存在しないパラメーターを含む(XMLエンコードされた)要求を予期しています。

しかし、これはクライアントコードが実行していることとは一致しません。実際、パラメータを使用してPOSTリクエストを送信している場合、これはおそらくapplication/x-www-form-urlencodedXMLではなく...としてエンコードされたリクエスト本文になります。それはうまくいきません。

于 2012-06-02T06:39:23.453 に答える