Android 使用HttpPut使文件上载请求无效
我用这段代码向服务器发出文件上传请求(后端是PHP)Android 使用HttpPut使文件上载请求无效,android,apache,upload,laravel-4,put,Android,Apache,Upload,Laravel 4,Put,我用这段代码向服务器发出文件上传请求(后端是PHP) public String makeFilePutUploadRequest(字符串url、文件文件、列表basicNameValuePairs)抛出ClientProtocolException、IOException{ 字符串responseString=null; HttpPut httput=新的HttpPut(url); MultipartEntityBuilder MultipartEntityBuilder=MultipartE
public String makeFilePutUploadRequest(字符串url、文件文件、列表basicNameValuePairs)抛出ClientProtocolException、IOException{
字符串responseString=null;
HttpPut httput=新的HttpPut(url);
MultipartEntityBuilder MultipartEntityBuilder=MultipartEntityBuilder.create();
//
如果(basicNameValuePairs.size()>0){
对于(BasicNameValuePairNameValuePairs:basicNameValuePairs){
multipartEntityBuilder.addTextBody(nameValuePair.getName(),nameValuePair.getValue());
}
}
//文件
addPart(“upfile”,新的文件体(文件));
setEntity(multipartEntityBuilder.build());
HttpResponse response=httpClient.execute(httput);
responseString=EntityUtils.toString(response.getEntity());
//Log.i(Log_标记,“接收到的响应字符串::”+responseString);
回报率;
}
但在服务器端接收到请求,但未设置参数
我在后端使用Laravel4.1来处理这个请求,如果我使用
Input::get('param')
来获取值,我会得到null。和Input::hasFile('upfile')
返回false
要使用PUT方法发送参数,我执行以下操作:
HttpPut httput = new HttpPut();
StringBuffer params = new StringBuffer();
for (BasicNameValuePair nameValuePair : basicNameValuePairs) {
params.append(nameValuePair.getName())
.append("=")
.append(nameValuePair.getValue())
.append("&");
}
StringBuffer urlWithParams = new StringBuffer(ServiceURL);
urlWithParams.append("?").append(params.toString().substring(0,params.length()-1));
httput.setURI(URI.create(urlWithParams.toString()));
httput.addHeader("Content-Type", "application/json");
…我想发送参数和文件,对于发送参数,我已经有了一个工作代码。
HttpPut httput = new HttpPut();
StringBuffer params = new StringBuffer();
for (BasicNameValuePair nameValuePair : basicNameValuePairs) {
params.append(nameValuePair.getName())
.append("=")
.append(nameValuePair.getValue())
.append("&");
}
StringBuffer urlWithParams = new StringBuffer(ServiceURL);
urlWithParams.append("?").append(params.toString().substring(0,params.length()-1));
httput.setURI(URI.create(urlWithParams.toString()));
httput.addHeader("Content-Type", "application/json");