私は 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 を使用するのは正しくありませんか?
助けてくれてありがとう:)