得到FileNotFoundException异常而用java
问题描述:
我试图JSON数据发送到潮分贝使用下面的代码发送JSON数据:得到FileNotFoundException异常而用java
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 -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从网页获取数据并在JSON请求中传递数据。但为了简单起见,我现在已经对它进行了硬编码。
答
这应该是比较明显的。 405表示请求上的HTTP方法不被端点支持。您所调用的服务不支持PUT方法。
+0
谢谢。我只是将请求方法更改为发布和我工作。 –
做了一些调试,发现URL不正确。更正它并再次运行程序。 FileNOtFound错误消失了,但现在我得到了405错误,如下所示。 java.io.IOException:服务器返回的HTTP响应代码:405对于URL: –