Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/223.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_Java_Android_Json_Upload_Multipartentity - Fatal编程技术网

Java 多协议和Json

Java 多协议和Json,java,android,json,upload,multipartentity,Java,Android,Json,Upload,Multipartentity,我想将一个图像和一个JsonObject发送到一个具有多个部件的PHP服务器。 这是我的密码: HttpClient httpClient = new DefaultHttpClient(); HttpPost httppost = new HttpPost(urlString); File file = new File(imageend); HttpResponse response = null; MultipartEntity mpEntity = new MultipartEntity

我想将一个图像和一个JsonObject发送到一个具有多个部件的PHP服务器。 这是我的密码:

HttpClient httpClient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(urlString);
File file = new File(imageend);
HttpResponse response = null;
MultipartEntity mpEntity = new MultipartEntity();
ContentBody cbFile = new FileBody(file, "image/jpeg");
StringBody sb;

try {
    sb = new StringBody(json.toString());

    mpEntity.addPart("foto", cbFile);
    mpEntity.addPart("json", sb);
    httppost.setEntity(mpEntity);
    response = httpClient.execute(httppost);
我无法在php中阅读此内容,因为其格式如下:

{\"test1\":\"Z\",\"test2\":\"1\"}
由于反斜杠,我无法在php中阅读此内容。如果我在httppost和bytearrayentity上发布没有图像的json,则不会出现任何反斜杠,我没有问题。

使用以下PHP:

string stripslashes ( string $str )

也许您可以在PHP端使用preg\u replace替换
\“
”,来替换
\
如何创建
json
对象?JSONObject json=new JSONObject();尝试{json.put(“test1”,test1.getText().toString());json.put(“test2”,test2.getText().toString());您能看到
json.toString()
返回的是什么吗?是否包含这些反斜杠?可能您应该在您的stringbody中指定和编码?@Nikitabloglazov:好问题。我尝试了String test=json.toString();并且没有反斜杠!所以问题应该是StringBody!但是我如何读取StringBody?我切换了一个断点,但我看不到它。我尝试了这个方法,效果很好,但是如果我想上传一个带有飞溅的文本,它会将其删除,对吗?然后使用/\并删除slashif(get_magic_quotes_gpc()){function stripslashes_deep($value){$value=is_数组($value)?数组映射($stripslashes_deep',$value):stripslashes($value);返回$value;}$$POST=array_映射($stripslashes_deep',$_POST);$_GET=array_映射($stripslashes_deep',$_GET);$_COOKIE=array_映射($stripslashes_deep',$_COOKIE)$\u REQUEST=array\u map('stripslashes\u deep',$\u REQUEST);}好的,这是一个好主意。但是有没有可能在Java中解决这个问题,即它在创建StringBody时不会设置飞溅?我们最近在一台旧服务器上遇到了同样的问题。服务器自动插入了反斜杠。安装的PHP版本是5.3.6。我们可以在PHP版本5.3.10及更高版本上验证反斜杠他失踪了。这种行为的确切原因还不清楚