通过HTTP从Android上传文件
我正在尝试将一个XML文件从android设备上传到一个URL,在那里它将被解析。例如,我收到了一个curl命令,它可以工作:通过HTTP从Android上传文件,android,file-upload,http-post,httprequest,mime-types,Android,File Upload,Http Post,Httprequest,Mime Types,我正在尝试将一个XML文件从android设备上传到一个URL,在那里它将被解析。例如,我收到了一个curl命令,它可以工作: curl -F xml=@templ2.xml "http://the-url-to-the-server" 但当我尝试从Android设备发送东西时,我总是得到“无效xml”作为响应。因此,基于此,我为自己创建了一个php文件,尝试将该文件发送到,以查看它是如何发送的: <?php print_r($_FILES); print_r($_REQUEST); ?
curl -F xml=@templ2.xml "http://the-url-to-the-server"
但当我尝试从Android设备发送东西时,我总是得到“无效xml”作为响应。因此,基于此,我为自己创建了一个php文件,尝试将该文件发送到,以查看它是如何发送的:
<?php
print_r($_FILES);
print_r($_REQUEST);
?>
给予
一些相关问题,我已经尝试了代码:
而不是
reqEntity.addPart("bar", new FileBody(file, "text/xml"));
试着这样做
reqEntity.addPart("bar");
httpPost.addHeader("Content-Type", "application/xml");
我解决了我的问题。当我查看curl命令时,我意识到xml=@temp2.xml意味着我必须使用xml作为参数的名称。所以
reqEntity.addPart("xml", new FileBody(file));
然后您将更改整个请求的内容类型,我认为应该是某种形式的多部分。不管怎么说,我试过了,没用。
reqEntity.addPart("bar");
httpPost.addHeader("Content-Type", "application/xml");
reqEntity.addPart("xml", new FileBody(file));