Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用java发送json数据时获取filenotfoundexception_Java_Json - Fatal编程技术网

使用java发送json数据时获取filenotfoundexception

使用java发送json数据时获取filenotfoundexception,java,json,Java,Json,我正在尝试使用以下代码将json数据发送到Inflox db: String url = "http://xx.x.xx.xx:8086/db/monitoring/check_1113?u=root&p=root"; URL obj = new URL(url); HttpURLConnection conn = (HttpURLConnection) obj.openConnection(); conn.setRequestProperty("Content-Type", "ap

我正在尝试使用以下代码将json数据发送到Inflox db:

String url = "http://xx.x.xx.xx:8086/db/monitoring/check_1113?u=root&p=root";

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

conn.setRequestProperty("Content-Type", "application/json");
conn.setDoOutput(true);

conn.setRequestMethod("PUT");

//String userpass = "user" + ":" + "pass";
//String basicAuth = "Basic " + javax.xml.bind.DatatypeConverter.printBase64Binary(userpass.getBytes("UTF-8"));
//conn.setRequestProperty ("Authorization", basicAuth);

//String data =  "{\"format\":\"json\",\"pattern\":\"#\"}";
System.out.println("Data to send: "+"[{\"name\": \"check_222\",\"columns\": [\"time\", \"sequence_number\", \"value\"],\"points\": [["+unixTime+", 1, \"122\"]]}]");
String data = "[{\"name\": \"check_333\",\"columns\": [\"time\", \"sequence_number\", \"value\"],\"points\": [["+14444444444+", 1, \"122\"]]}]";

OutputStreamWriter out = new OutputStreamWriter(conn.getOutputStream());
out.write(data);
out.close();

new InputStreamReader(conn.getInputStream());   

System.out.println("Data Sent");
其中xx.xx.xx.xx是部署流入的服务器的ip,我正在使用该ip

当我使用此数据(在本地主机上)进行手动curl时,数据被成功发送。下面提供了一个示例:

curl -X POST -d '[{"name": "check_223","columns": ["time", "sequence_number", "value"],"points": [[1445271004000,1,70.8880519867]]}]' 'http://localhost:8086/db/monitoring/series?u=root&p=root'
但当我运行代码通过上面共享的java程序发送数据时,我得到以下错误:

java.io.FileNotFoundException: http://xx.x.xx.xx:8086/db/monitoring/check_1113?u=root&p=root
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1834)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1439)
at com.snapdeal.hadoop.monitoring.hdfs1.App.sendJsonDataToInflux(App.java:52)
at com.snapdeal.hadoop.monitoring.hdfs1.App.main(App.java:89)
[INFO  - 2015-10-20T16:27:13.152Z] ShutdownReqHand - _handle - About to shutdown

另外,我使用phantomJS从web页面获取数据,并在JSON请求中传递这些数据。但为了简单起见,我现在已经硬编码了。

这应该是比较明显的。405表示端点不支持请求上的HTTP方法。您正在调用的服务不支持PUT方法。

进行了一些调试,发现URL不正确。更正它并再次运行程序。FileNOtFound错误已消失,但我现在收到405错误,如下所示。java.io.IOException:服务器返回了URL:谢谢的HTTP响应代码:405。我只是将请求方法改为post,然后我就开始工作了。