通过导航器而不是java传递json对象
我有一个java应用程序,代码如下:通过导航器而不是java传递json对象,java,json,Java,Json,我有一个java应用程序,代码如下: URL url = new URL("http://myurl/"); HttURLConnection connection = (HttURLConnection) url.openConnection(); connection.setDoInput(true); connection.setDoOutplut(true); connection.setRequestProperty("Content-Type", "application/json"
URL url = new URL("http://myurl/");
HttURLConnection connection = (HttURLConnection) url.openConnection();
connection.setDoInput(true);
connection.setDoOutplut(true);
connection.setRequestProperty("Content-Type", "application/json");
BufferedWriter buffer = new BufferedWriter(new OutputStreamWriter(connection.getOutputStream()));
buffer.write("{\"foo:\"0}");
buffer.flush();
我只想在我们的URL栏中做同样的事情
编辑
我找到了一个修改标题的工具。这里是加载页面时开发工具的屏幕截图。
现在我把Json对象放在哪里了
如果您需要将JSON数据发送到您的URL,您的代码应该如下所示
URL url = new URL("http://myurl/");
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
con.setRequestProperty("Content-Type", "application/json");
String input = "{\"foo\":\"bar\"}";
OutputStream ous = con.getOutputStream();
ous.write(input.getBytes());
ous.flush();
if (con.getResponseCode() != HttpURLConnection.HTTP_OK)
{
throw new RuntimeException("Failed : HTTP error code : " + con.getResponseCode());
}else
{
BufferedReader br = new BufferedReader(new InputStreamReader((con.getInputStream())));
String output;
System.out.println("Output from Server .... \n");
while ((output = br.readLine()) != null)
{
System.out.println(output);
}
}
con.disconnect();
curl -v -H "Content-Type: application/json" -X POST \
-d '{\"foo\":\"bar\"}' http://myurl/
如果你需要GET方法,你可以把这个
con.setRequestMethod("GET");
con.setRequestProperty("Accept", "application/json");
如果需要发送带有URL的请求正文,可以使用CURL。你也可以使用。通过使用它,您可以发送请求并接收响应
卷曲会是这样的
URL url = new URL("http://myurl/");
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
con.setRequestProperty("Content-Type", "application/json");
String input = "{\"foo\":\"bar\"}";
OutputStream ous = con.getOutputStream();
ous.write(input.getBytes());
ous.flush();
if (con.getResponseCode() != HttpURLConnection.HTTP_OK)
{
throw new RuntimeException("Failed : HTTP error code : " + con.getResponseCode());
}else
{
BufferedReader br = new BufferedReader(new InputStreamReader((con.getInputStream())));
String output;
System.out.println("Output from Server .... \n");
while ((output = br.readLine()) != null)
{
System.out.println(output);
}
}
con.disconnect();
curl -v -H "Content-Type: application/json" -X POST \
-d '{\"foo\":\"bar\"}' http://myurl/
您可以使用Firefox来执行所需的操作。内容类型应该在标题中而不是查询中。并且{\foo\:bar}应该在正文中,而不是查询参数中。这也是无效的JSON,看起来很可疑。是的,它是{\foo:\bar}。这并不重要part@AniketSahrawat我是怎么把听者放进去的?@JulienMaret你在代码片段中做得对。我建议您添加connection.setRequestPropertyAccept,application/json;和它一起。它可能会也可能不会更改服务器的输出。另外,您尝试传递的JSON字符串无效。正确的JSON应该是{\foo\:\bar\}实际上,它是这样的。我编辑了这个问题。我想避免安装新软件,只使用我的导航器。