【问题标题】:How can I attach name-value pairs to a MultiPart POST request?如何将名称-值对附加到 MultiPart POST 请求?
【发布时间】:2011-03-01 05:25:16
【问题描述】:

此示例适用于其中之一,但不能同时适用:

public void postData() {  
    //http://www.softwarepassion.com/android-series-get-post-and-multipart-post-requests/
    File f = new File(filename);
    try {
             HttpClient client = new DefaultHttpClient();  
             String postURL = "http://url.com/script.php";


             HttpPost post = new HttpPost(postURL); 
    //         List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);  
      //       nameValuePairs.add(new BasicNameValuePair("project", projectName));  
        //     nameValuePairs.add(new BasicNameValuePair("name", imageName));  
          //   post.setEntity(new UrlEncodedFormEntity(nameValuePairs));  

             FileBody bin = new FileBody(f);
             MultipartEntity reqEntity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);  
             reqEntity.addPart("file", bin);

             post.setEntity(reqEntity); 

             HttpResponse response = client.execute(post);  
             HttpEntity resEntity = response.getEntity();  
             if (resEntity != null) {    
                       Log.i("RESPONSE",EntityUtils.toString(resEntity));
                 }
    } catch (Exception e) {
        e.printStackTrace();
    }


}

似乎当我调用setEntity() 时,之前的实体被覆盖了——所以我可以拥有名称值对或文件数据,但不能同时拥有两者。你知道如何整合它们,以便我可以在上传时使用 URL 参数吗?简单地将它们附加到 POST URL 是行不通的。

我也试过了

  post.addHeader("project", projectName);
  post.addHeader("name", imageName);                 

但这似乎也不起作用。

谢谢。

【问题讨论】:

    标签: java android http http-post multipart


    【解决方案1】:

    这似乎可以解决问题:

                 reqEntity.addPart("project", new StringBody(projectName));
                 reqEntity.addPart("name", new StringBody(imageName));
    

    【讨论】:

    • 这不是诀窍 :) 由于 Multipart 支持多种数据:字符串、文件、图像、视频、音频 ... 0_o 因此您可以将所有值输入到 Multipart。
    猜你喜欢
    • 2017-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多