我使用Apache HTTP库编写了一个Java应用程序,它将HTTP POST请求发送到Web服务器并打印响应。带有一些StringBodies和ByteArrayBody的MultipartEntity会附加到POST,然后它会被发送。 在Web服务器上,PHP脚本转储请求中包含的所有变量($ _POST和$ _FILES)
现在这里有一个奇怪的部分:在本地测试xampp服务器上进行测试时,一切都运行良好。字符串在$ _POST中,字节在$ _FILES中。但是当我在远程服务器上测试时,我只收到字符串,字节就消失了。
为什么会这样,我能解决这个问题吗?这是由于服务器上的安全设置吗?
Java客户端代码:
public HttpResponse send(URL url) throws IOException{
DefaultHttpClient client = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(url.toString());
MultipartEntity ent = new MultipartEntity();
ent.addPart("testString1", new StringBody("testValue1"));
ent.addPart("testString2", new StringBody("testValue2"));
ent.addPart("testString3", new StringBody("testValue3"));
ent.addPart("testString4", new StringBody("testValue4"));
ent.addPart("data", new ByteArrayBody(new byte[]{'a', 'b', 'c', 'd', 'e', 'f'}, "data"));
httpPost.setEntity(ent);
return client.execute(httpPost);
}
远程PHP代码:
<?php
print_r($_POST);
print_r($_FILES);
$contents = "Data:\n";
$contents .= print_r($_POST, true) . "\n";
$contents .= print_r($_FILES, true) . "\n";
file_put_contents ( "inputDump.txt" , $contents);
?>