使用HttpURLConnection执行POST请求时获取JSON响应

月亮

我正在使用以下代码在REST API上执行POST请求。一切正常。我无法执行的操作是在POST成功后,API在带有标头的正文中返回响应JSON,此JSON具有我需要的信息。我无法获得JSON响应。

我需要此响应,因为此响应包括DB生成的ID。使用firefox的REST Client插件时,我可以看到响应。需要在Java中实现相同的功能。

在此处输入图片说明

    String json = "{\"name\": \"Test by JSON 1\",\"description\": \"Test by JSON 1\",\"fields\": {\"field\": []},\"typeDefinitionId\": \"23\",\"primaryParentId\": \"26982\"}";
    String url = "http://serv23/api/contents";      
    URL obj = new URL(url);

    HttpURLConnection con = (HttpURLConnection) obj.openConnection();

    //Setting the Request Method header as POST
    con.setRequestMethod("POST");

    //Prepairing credentials
    String cred= "user123:[email protected]";
    byte[] encoded = Base64.encodeBase64(cred.getBytes());           
    String credentials = new String(encoded);

    //Setting the Authorization Header as 'Basic' with the given credentials
    con.setRequestProperty  ("Authorization", "Basic " + credentials);

    //Setting the Content Type Header as application/json
    con.setRequestProperty("Content-Type", "application/json");

    //Overriding the HTTP method as as mentioned in documentation   
    con.setRequestProperty("X-HTTP-Method-Override", "POST");

    con.setDoOutput(true);

    JSONObject jsonObject = (JSONObject)new JSONParser().parse(json);

    OutputStream os = con.getOutputStream();
    os.write(jsonObject.toJSONString().getBytes());

    os.flush();
    WriteLine( con.getResponseMessage() );
    int responseCode = con.getResponseCode();
阿卜杜勒·法蒂尔|

获取输入流并读取它。

String json_response = "";
InputStreamReader in = new InputStreamReader(con.getInputStream());
BufferedReader br = new BufferedReader(in);
String text = "";
while ((text = br.readLine()) != null) {
  json_response += text;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

HttpURLConnection将JSON POST请求发送到Apache / PHP

返回2xx以外的代码时,如何使用HttpURLConnection获取响应主体?

在执行POST请求并读取用户使用Spring Boot Rest API输入的POST数据时进行JSON模式验证

尝试使用springboot从POST请求主体读取嵌套JSON时获取null

尝试使用Springs RestTemplate执行POST请求时获取RestClientException

执行正文时,npm请求未得到json响应。{object}

Alamofire获取请求和JSON响应

解析Httpurlconnection获取响应

使用翻新发送POST请求时无法获取POST参数

使用获取发出POST请求

如何使用WebSockets执行请求-响应模式

如何在Android中使用Retrofit发送JSON POST请求并接收String响应

使用QT发送POST请求并阅读Json响应

在nodeJS中检索POST请求的JSON响应

Android Volley Post请求在正文中带有json对象,并在String中获取响应

使用JSON正文发送POST请求时出现400响应

获取Angular 6中POST请求的响应

尝试使用数据进行POST时,Python请求获取TypeError

如何使用Puppeteer从XHR请求获取body / json响应

无法获取JSON响应表单Ajax请求

使用HttpURLConnection的Android POST请求

从POST请求获取响应时输出未知

如何发出HTTP Post请求并以JSON Android获取响应

Android:HttpUrlConnection使用POST发送请求正文(而不是GET)

使用jQuery $ .when执行多个请求时,如何为请求分配响应?

使用Angular $ resource执行获取请求时出错

使用带有参数的POST请求获取JSON结果

请求失败时从AlamoFire获取JSON响应

带有请求-json的多个获取请求无法在节点js中使用异步正确执行