簡體   English   中英

從Java客戶端中的HTTP響應中提取字符串

[英]Extract string from http response in java client

我想提取Java客戶端中從Java Web服務返回的字符串。 從Java Web服務返回的字符串如下:

{"Name":"Raj Johri","Email":"mailraj@server.com","status":true}

這是Json字符串格式。 我已編寫客戶端代碼來提取此字符串,如下所示:

public static void main(String[] args) throws Exception{
    DefaultHttpClient httpClient = new DefaultHttpClient();
    HttpPost post = new HttpPost("http://localhost:8080/JsonWebService/services/JsonWebService/getData");
    post.setHeader("Content-Type", "application/xml");
    HttpResponse httpres = httpClient.execute(post);
    HttpEntity entity = httpres.getEntity();
    String json = EntityUtils.toString(entity).toString();
    System.out.println("json:" + json);
}

我在json的控制台上得到以下打印為:

json:<ns:getDataResponse xmlns:ns="http://ws.jsonweb.com"><ns:return>{"Name":"Raj Johri","Email":"mailraj@server.com","status":true}</ns:return></ns:getDataResponse>

請告訴我如何提取字符串

{"Name":"Raj Johri","Email":"mailraj@server.com","status":true}

這是實際的消息。 提前致謝...

好吧,響應是xml的類型,並且您的json<ns:return> 節點中 ,所以我建議您輸入xml結果的深度,然后從<ns:return>節點獲取您的json。

注意:我建議您嘗試指定需要將響應作為JSON類型

post.setHeader("Content-type", "application/json");
post.setHeader("Accept", "application/json");

如果您每次都獲取相同的XML,則有一種骯臟的方法(除了xml解析方法外)可以使用split()

String parts[] = json.split("<ns:return>");
parts = parts[1].split("</ns:return>");
String jsonPart = parts[0];

現在jsonPart應該只包含{"Name":"Raj Johri","Email":"mailraj@server.com","status":true}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM