繁体   English   中英

如何在 httpClient 的 Map 中获得响应?

[英]How to get response in Map in httpClient?

我正在向我的服务器发出请求,但响应以字符串形式给出,我需要从那里获取数据,例如 if 响应:{"response":{"balance":85976,"adres": "pasaharpsuk@gmail.com"}} 并且需要平衡

代码:

public class test {
public static void main(String[] args) {


    CloseableHttpClient httpClient = HttpClientBuilder.create().build();
    // Создать запрос на получение
    HttpGet httpGet = new HttpGet("http://localhost:8080/api/bank/my_wallet");
    httpGet.setHeader("Authorization", "eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJwYXNhaGFycHN1a0BnbWFpbC5jb20iLCJyb2xlIjoiVVNFUiIsImlhdCI6MTY1MjUzNzQ3NSwiZXhwIjoxNjUzNTM3NDc1fQ.zYQqgXA0aeZAMm7JGhv4gOQEtks2iyQqGoqOOrdxy5g");
    // модель ответа
    CloseableHttpResponse response = null;
    try {
        // Выполнить (отправить) запрос Get от клиента
        response = httpClient.execute(httpGet);
        // Получить объект ответа из модели ответа
        HttpEntity responseEntity = response.getEntity();
        if (responseEntity != null) {
            
            System.out.println(EntityUtils.toString(responseEntity));
        }
    } catch (ParseException | IOException e) {
        e.printStackTrace();
    } finally {
        try {
            // освободить ресурсы
            if (httpClient != null) {
                httpClient.close();
            }
            if (response != null) {
                response.close();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

}

'''

在检查内容类型标头后,您只需要一个实体的 JSON 解析器。 https://hc.apache.org/httpcomponents-core-4.4.x/current/httpcore/apidocs/org/apache/http/HttpEntity.html#getContentType()

例如,您可以使用 org.json 中的 JSONObject 将字符串转换为 json。 https://developer.android.com/reference/org/json/JSONObject#JSONObject(java.lang.String)

JSONObject o = new JSONObject(EntityUtils.toString(responseEntity));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM