jsonレスポンスを取得してStringに格納するために、javaから既存のRESTfulサービスにPOST
リクエストを送信しようとしています。Javaからjson RESTfulサービスへのポストリクエストを作成するにはどうすればいいですか?
はのは、RESTfulなサービスのURLは次のようであることを仮定しよう:
https://myStore.com/REST-API/
製品と店舗の一種であり、あなたがアイテムを検索したいです。私はJavaで次のメソッドを実装しているポストを作るために
{
"searchProduct": "Football"
}
:あなたのようなもRequest Body
を送信する必要が検索を行うために
public String getJsonResponse(String searchProduct) throws Exception {
String url = "https://myStore.com/REST-API/";
String requestBody = "{\"searchProduct\": \"" + searchProduct + "\"}";
URL obj = new URL(url);
HttpsURLConnection connection = (HttpsURLConnection) obj
.openConnection();
connection.setDoOutput(true);
connection.setRequestMethod("POST");
connection.setRequestProperty("Content-Type", "application/json");
OutputStream outputStream = connection.getOutputStream(); // <-- I get an exception.
outputStream.write(requestBody.getBytes());
outputStream.flush();
BufferedReader in = new BufferedReader(new InputStreamReader(
connection.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
return response.toString();
}
例外は以下の通りです。
Exception in thread "main" java.net.UnknownHostException: myStore.com
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:184)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:668)
at sun.security.ssl.BaseSSLSocketImpl.connect(BaseSSLSocketImpl.java:173)
at sun.net.NetworkClient.doConnect(NetworkClient.java:180)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:432)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:527)
at sun.net.www.protocol.https.HttpsClient.<init>(HttpsClient.java:264)
at sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:367)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:191)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1105)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:999)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:177)
at sun.net.www.protocol.http.HttpURLConnection.getOutputStream0(HttpURLConnection.java:1283)
at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1258)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:250)
at com.stavros.restfulServices.Requester.getJsonRespondingResults(Requester.java:70)
at com.stavros.restfulServices.MyMain.main(MyMain.java:11)
私はこの例外を取得していますなぜ私は知らないが、場合にあなたのアイデアを持っているか、あなたも同じ問題に直面しているあなたが提案を投稿した場合、私はそれをいただければ幸いですイオンか答え。
は、ネットワークケーブルですプラグイン? – Lee
'com.stavros.restfulServices.Requester.getJsonRespondingResults(Requester.java:70)'には何がありますか?これにより例外が発生しています。提供されるコードには、わずかに異なる名前のメソッドが含まれています。 – sanastasiadis
"UnknownHostException"投稿しようとしているURLにアクセスできます – AnupamBhusari