Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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 Http后通信失败-为什么?_Java_Database_Http_Post_Http Post - Fatal编程技术网

Java Http后通信失败-为什么?

Java Http后通信失败-为什么?,java,database,http,post,http-post,Java,Database,Http,Post,Http Post,我在Java(androidstudio)中写了一篇HTTP帖子,从一个节点数据库中获取一些信息 执行此代码时,不会出现错误。但是数据库创建了一个带有空字段的条目,而应该给出一个包含数据的JsonArray的响应只是一个空JsonArray。 有人看到错误了吗?如果我用Postman测试数据库,一切正常。更重要的是,我已经编写了一个没有任何参数的GET,它也工作得很好 这是我的发帖方法: URL url = new URL("https://example-page.de/ExistingUse

我在Java(androidstudio)中写了一篇HTTP帖子,从一个节点数据库中获取一些信息

执行此代码时,不会出现错误。但是数据库创建了一个带有空字段的条目,而应该给出一个包含数据的JsonArray的响应只是一个空JsonArray。

有人看到错误了吗?如果我用Postman测试数据库,一切正常。更重要的是,我已经编写了一个没有任何参数的GET,它也工作得很好

这是我的发帖方法:

URL url = new URL("https://example-page.de/ExistingUser");
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setRequestMethod("POST");
String boundary = "===" + System.currentTimeMillis() + "===";
con.setRequestProperty("Content-Type", "multipart/form-data; boundary=" + boundary); 
con.setRequestProperty("Accept", "*/*");
con.setRequestProperty("Host", "example-page.de");
con.setRequestProperty("Connection", "keep-alive");
con.setRequestProperty("Cache-control", "no-cache");
con.setUseCaches (false);
con.setDoInput(true);
con.setDoOutput(true);

//Create REQUEST content
DataOutputStream wr = new DataOutputStream(con.getOutputStream ());
PrintWriter writer;
String LINE_FEED = "\r\n";
String charset = "UTF-8";
String name = "EMail";
String value = "hans.wurst";
writer.append("--" + boundary).append(LINE_FEED);
writer.append("Content-Disposition: form-data; name=\"" + name + "\"").append(LINE_FEED);
writer.append("Content-Type: application/json; charset=" + charset).append(LINE_FEED);
writer.append(LINE_FEED);
writer.append(value);
writer.flush();
writer.append(LINE_FEED).flush();
writer.append("--" + boundary + "--").append(LINE_FEED);
writer.close();

//Read Response
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
content = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
        content.append(inputLine);
}
in.close();
con.disconnect();

您似乎没有将表单数据部分添加到正确的输出流中。 您不需要创建另一个printwriter

DataOutputStream wr = new DataOutputStream(con.getOutputStream ());
//PrintWriter writer;
String LINE_FEED = "\r\n";
String charset = "UTF-8";
String name = "EMail";
String value = "hans.wurst";
wr.append("--" + boundary).append(LINE_FEED);
wr.append("Content-Disposition: form-data; name=\"" + name + "\"").append(LINE_FEED);
wr.append("Content-Type: application/json; charset=" + charset).append(LINE_FEED);
wr.append(LINE_FEED);
wr.append(value);
wr.flush();
wr.append(LINE_FEED).flush();
wr.append("--" + boundary + "--").append(LINE_FEED);
wr.close();

首先感谢您的帮助

我试过了,但没用。 我们大学的服务器上有一台虚拟机。我们的URL通过服务器内的默认端口传递到我们的虚拟机。这可能是问题所在吗?那么,可能正文的内容没有从第一个Web服务器内部传递到第二个Web服务器?因为如果我使用查询参数或在头中创建新的键值对,就不会有问题。一切正常

但现在我有另一个问题。当我使用查询参数执行GET请求时,我可以使用普通URL。但是,当我尝试使用查询参数发布帖子时,我需要使用服务器的本地IP,并将我的手机连接到我所在大学的本地网络。这很令人困惑,我看不出有什么原因?
你有什么想法吗?

你能分享一下你在《邮递员》中所做的事情,说“一切都很好”?你可以在编辑中找到链接。你能用常规的
系统将你所写的输出到
编写器中吗?让我们检查一下它是否真的包含了您期望的内容。