1

私は http 投稿要求を起動しようとしていますが、私の問題は、NullpointerException が発生していることです。場所はわかっていると思いますが、理由はわかりません。

コードは

HttpURLConnection connection = null;
    try {
      URL url = new URL(targetURL);

      connection = (HttpURLConnection)url.openConnection();
      connection.setRequestMethod("POST");
      connection.setRequestProperty("Content-Type",
           "application/x-www-form-urlencoded");
      connection.setRequestProperty("Content-Length", "" +
               Integer.toString(urlParameters.getBytes().length));
      connection.setRequestProperty("Content-Language", "en-US");
      connection.setUseCaches (false);
      connection.setDoInput(true);
      connection.setDoOutput(true);

      // Send request
      DataOutputStream wr = new DataOutputStream (connection.getOutputStream());
      wr.writeBytes (urlParameters);
      wr.flush();
      wr.close();

      // Get Response
      InputStream is = connection.getInputStream();
      BufferedReader rd = new BufferedReader(new InputStreamReader(is));
      String line;
      StringBuffer response = new StringBuffer();
      while((line = rd.readLine()) != null) {
        response.append(line);
        response.append('\r');
      }
      rd.close();
      log.info("Http request response '{}': ",response.toString());

    } catch (Exception e) {
      log.error("Error while sending http post request.");
      e.printStackTrace();


    } finally {

      if(connection != null) {
        connection.disconnect();
      }
    }

私のエラー出力は次のとおりです。

java.lang.NullPointerException
    at sun.net.www.ParseUtil.toURI(ParseUtil.java:261)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:905)
    at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:836)
    at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1014)

これは行にあります:DataOutputStream wr = new DataOutputStream (connection.getOutputStream());

問題は Http URL 接続を作成することですが、ターゲット URL (リクエストを送信する URL) は正しいようです: ターゲット URL: 'http:localhost:8080/project/externalData' (私の URL (Spring) 私の URL パターンの RequestMethod. また、私のパラメーター文字列は正しいようです PARAMS: 'salutation=Mister&givenname=Matt&familyname=Jones'. または、DataOutputStream を使用するのは正しくありませんか?

助けてくれてありがとう:)

4

1 に答える 1