java url json字符串_使用HttpClient将URL中的JSON查询字符串发送到Web服务(Java)
我有一個我建立的Web服務...我現(xiàn)在要做的是發(fā)送一個簡單的請求,其中包含一個從Tapestry Web應用程序到該Web服務的json查詢字符串。我四處搜索,大多數(shù)人都說使用Apache HttpClient來實現(xiàn)這一點。與HttpClient一起,我正在使用URIBuilder。
我試圖發(fā)送的Json對象看起來像這樣
{"user":{"userEmail":"jdoe@gmail.com","firstName":"John","lastName":"Doe","phone":"203- 555-5555"},"password":"dead"}
*我意識到用純文本等發(fā)送密碼的問題......
可以使用的網(wǎng)址(通過手動輸入到Web瀏覽器進行測試,并且此Web服務已經(jīng)為Android客戶端和iOS客戶端提供服務)看起來像這樣
http:// ##.##.###.##/createuser?json={"user":{"userEmail":"jdoe@gmail.com","firstName":"John","lastName":"Doe","phone":"203-555-5555"},"password":"dead"}
這里是我在谷歌周圍試圖弄清楚為什么這不會工作的HttpClient代碼。基本上我想要做的是用URIBuilder創(chuàng)建一個URI,然后用新建的URI構(gòu)造一個HttpPost或HttpGet對象。但是URIBuilding過程中出現(xiàn)了問題。當我調(diào)試時,當我嘗試設置URI的所有方面時會引發(fā)異常。
Object onSuccess() throws ClientProtocolException, IOException, URISyntaxException{
// json = {"user":{"userEmail":"jdoe@gmail.com","firstName":"John","lastName":"Doe","phone":"203- 555-5555"},"password":"dead"}
String json = user.toJson();
URIBuilder builder = new URIBuilder();
// Error gets thrown when I step over the next line
builder.setScheme("http").setHost("##.###.##.###").setPort(8080).setPath("createuser").setQuery("json=" +json);
URI uri = builder.build();
HttpPost request = new HttpPost(uri);
DefaultHttpClient httpClient = new DefaultHttpClient();
String tmp = request.getURI().toString();
HttpResponse response = httpClient.execute(request);
index.setResponse(EntityUtils.toString(response.getEntity()));
return index;當我跨過我在代碼中評論的行時出現(xiàn)的錯誤是
[ERROR] TapestryModule.RequestExceptionHandler Processing of request failed with uncaught exception:org.apache.http.client.utils.URLEncodedUtils.parse(Ljava/lang/String;Ljava/nio/charset/Charset;)Ljava/util/List;
java.lang.NoSuchMethodError:org.apache.http.client.utils.URLEncodedUtils.parse(Ljava/lang/String;Ljava/nio/charset/Charset;)Ljava/util/List;
我已經(jīng)嘗試了許多方法和對象的其他組合,以便將此請求正確發(fā)送到服務器,而且似乎沒有任何工作。希望我能看到一些相對簡單的東西。
預先感謝您提供的任何指導。
總結(jié)
以上是生活随笔為你收集整理的java url json字符串_使用HttpClient将URL中的JSON查询字符串发送到Web服务(Java)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 零落成泥年做成的下一句是什么呢?
- 下一篇: 原神夏祭游鱼食谱怎么获得?