将Curl转换为Java等效项

JTK

New Relic REST API第一次使用,我有一个curl命令:

curl -X GET 'https://api.newrelic.com/v2/applications/appid/metrics/data.json' \
     -H 'X-Api-Key:myApiKey' -i \
     -d 'names[]=EndUser/WebTransaction/WebTransaction/JSP/index.jsp' 

我想在Java Servlet中发送此命令,并从响应中获取一个JSON对象以进行解析,最好的解决方案是什么?

HttpURLConnection?

Apache httpclient?

我尝试了几种不同的解决方案,但到目前为止没有任何效果,我可以找到的大多数示例都使用了已贬值的DefaultHttpClient

这是我的尝试之一的示例:

 String url = "https://api.newrelic.com/v2/applications.json";
        HttpURLConnection conn = (HttpURLConnection) new URL(url).openConnection();

        conn.setRequestProperty("Content-Type", "application/json");
        conn.setRequestProperty("X-Api-Key", "myApiKey");
        conn.setRequestMethod("GET");
        JSONObject names =new JSONObject();

        try {
            names.put("names[]=", "EndUser/WebTransaction/WebTransaction/JSP/index.jsp");
        } catch (JSONException e) {
            e.printStackTrace();
        }
        OutputStreamWriter wr= new OutputStreamWriter(conn.getOutputStream());
        wr.write(names.toString());

编辑

我已经修改了代码,现在可以正常工作了,谢谢。

String names = "names[]=EndUser/WebTransaction/WebTransaction/JSP/index.jsp";
String url = "https://api.newrelic.com/v2/applications/myAppId/metrics/data.json";
String line;

try (PrintWriter writer = response.getWriter()) {

            HttpURLConnection conn = (HttpURLConnection) new URL(url).openConnection();

            conn.setRequestProperty("Accept", "application/json");
            conn.setRequestProperty("X-Api-Key", "myApiKey");
            conn.setRequestMethod("GET");
            conn.setDoOutput(true);
            conn.setDoInput(true);

            OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
            wr.write(names);
            wr.flush();


            BufferedReader reader = new BufferedReader(new
                    InputStreamReader(conn.getInputStream()));
            while ((line = reader.readLine()) != null) {
                System.out.println(line);
                writer.println(HTML_START + "<h2> NewRelic JSON Response:</h2><h3>" + line + "</h3>" + HTML_END);
            }
            wr.close();
            reader.close();
        }catch(MalformedURLException e){

            e.printStackTrace();
        }
unt

curl -d发送您指定的内容而不会以任何方式对其进行格式化。只需names[]=EndUser/...在OutputStream中发送字符串,而无需将其包装在JSONObject中。wr.flush()写完字符串后不要忘记调用当然,在那之后,您需要获取InputStream并开始阅读它(我只提到这一点,因为它不在您的代码段中)。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将Curl转换为Java等效项

来自分类Dev

将Curl转换为Java

来自分类Dev

(jquery)如何将包含声明转换为“ not”等效项?

来自分类Dev

将Curl命令转换为Java / Android

来自分类Dev

将Curl命令转换为Java / Android

来自分类Dev

将cURL调用转换为Java

来自分类Dev

Java中的Curl oAuth等效项

来自分类Dev

如何将SQL bigint强制转换为C#等效项

来自分类Dev

将C#Ctor转换为Vb.Net等效项

来自分类Dev

将8位转换为换算后的12位等效项

来自分类Dev

如何将Rust`Args`转换为argc和argv C等效项?

来自分类Dev

将8位转换为换算后的12位等效项

来自分类Dev

如何将SQL bigint强制转换为C#等效项

来自分类Dev

根据参考范围将数字数据框转换为字符串等效项

来自分类Dev

如何将所说的curl转换为等效的scala Gatling代码?

来自分类Dev

将cURL转换为翻新

来自分类Dev

将curl转换为python

来自分类Dev

将 CURL 转换为 Swift

来自分类Dev

将curl转换为Java代码(Jenkins插件)

来自分类Dev

如何将curl代码转换为Java

来自分类Dev

需要帮助将 curl 请求转换为 java 请求

来自分类Dev

将嵌套的for循环转换为等效的地图

来自分类Dev

将jQuery转换为等效的JavaScript代码

来自分类Dev

将Python字典转换为等效的Octave

来自分类Dev

将curl命令转换为php curl

来自分类Dev

将cURL转换为PHP cURL

来自分类Dev

将 CURL 请求转换为 PHP CURL

来自分类Dev

将语法从 cURL 转换为 php cURL

来自分类Dev

将我的值类型转换为可为空的等效项