java - 将文件(和更多值)发布到 java 中的 http 请求中

标签 java php android http

这是我向 url 发送 HTTP post 的代码

public static String post(String url, List<BasicNameValuePair> postvalues) {
    try {
        HttpClient httpclient = new DefaultHttpClient();
        HttpPost httppost = new HttpPost(url);

        if ( (postvalues==null) ){
            postvalues= new ArrayList<BasicNameValuePair>();
        } 
        httppost.setEntity(new UrlEncodedFormEntity(postvalues, "UTF-8"));

        // Execute HTTP Post Request
        HttpResponse response = httpclient.execute(httppost);
        return requestToString(response);
    } catch (Exception e) {
        e.printStackTrace();
        return null;
    }

}

我还想在帖子中添加一个文件(不是最后一个 byte[],只需将文件发布到 PHP $_FILES 字段即可。

我该怎么做?

谢谢

最佳答案

听起来您想发送一个多部分请求。这假设您可以在服务器端处理这样的请求:

HttpParams params = new BasicHttpParams();
for(BasicNameValuePair postValue: postValues) {
    params.setParameter(postValue.getName(), postValue.getValue());
}

HttpPost post = new HttpPost();
post.setParams(params);

MultipartEntity entity = new MultipartEntity();
entity.addPart("file", new FileBody(new File(myFile)));
post.setEntity(entity);

除了将名称-值对作为参数发送之外,您还可以像现在一样创建一个 UrlEncodedFormEntity 实体,并将其作为一个单独的部分添加到多部分实体中。

关于java - 将文件(和更多值)发布到 java 中的 http 请求中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9241490/

相关文章:

php - 在 PHP 中使用 COUNT()

java - 如何根据用户输入计算一年中的剩余天数

php - APCu 和 Symfony2

php - 如何通过子类设置/修改父类变量?

android - 为 Android 应用程序创建登录

android - PhoneGap - Android 中的 native 选项卡

android - 在sony smartwatch 2中生成动态列表

java - 回调<P,R> 和函数<T,R> 之间的区别

java - 如何将自定义类正确导入到此 FXML 文件中?

java - 对于几乎没有空闲时间的人来说,玩 GWT 的最快方法是什么?