【问题标题】:Making File upload request not working using HttpPut使用 HttpPut 使文件上传请求不起作用
【发布时间】:2014-06-13 03:38:56
【问题描述】:

我正在使用此代码向服务器(后端的 PHP)发出文件上传请求,

public String makeFilePutUploadRequest(String url,File file,List<BasicNameValuePair> basicNameValuePairs) throws ClientProtocolException, IOException {
    String responseString = null;

        HttpPut httput = new HttpPut(url);
        MultipartEntityBuilder multipartEntityBuilder = MultipartEntityBuilder.create();
        //
        if (basicNameValuePairs.size() > 0) {
            for (BasicNameValuePair nameValuePair : basicNameValuePairs) {
                multipartEntityBuilder.addTextBody(nameValuePair.getName(), nameValuePair.getValue());
            }
        }
        // file
        multipartEntityBuilder.addPart("upfile", new FileBody(file));
        httput.setEntity(multipartEntityBuilder.build());
        HttpResponse response = httpClient.execute(httput);
        responseString = EntityUtils.toString(response.getEntity());

    //      Log.i(LOG_TAG, "response string recieved::" + responseString);
    return responseString;
}

但在服务器端收到请求但未设置参数。

我在后端使用 Laravel 4.1 来处理这个请求,如果我使用 Input::get('param') 来获取值,我会得到空值。而Input::hasFile('upfile') 返回false

【问题讨论】:

    标签: android apache upload laravel-4 put


    【解决方案1】:

    要使用 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"); 
    

    ...

    【讨论】:

    • 我想发送参数和文件,发送参数我已经有一个工作代码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-20
    • 2022-08-03
    • 2016-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多