【问题标题】:HttpURLConnection, how to sending parameters via post?HttpURLConnection,如何通过post发送参数?
【发布时间】:2012-01-17 19:15:34
【问题描述】:
    String pathToOurFile = "/sdcard/DCIM/Camera/foto.jpg";
    String urlServer = "http://server/upload.php";        
    String lineEnd = "\r\n";
    String twoHyphens = "--";
    String boundary =  "*****";        
    .
    .
    .
    URL url = new URL(urlServer);
    connection = (HttpURLConnection) url.openConnection();

    // Allow Inputs & Outputs
    connection.setDoInput(true);
    connection.setDoOutput(true);
    connection.setUseCaches(false);

    // Enable POST method
    connection.setRequestMethod("POST");

    connection.setRequestProperty("Connection", "Keep-Alive");
    connection.setRequestProperty("Content-Type", "multipart/form-data;boundary="+boundary);

    outputStream = new DataOutputStream( connection.getOutputStream() );
    outputStream.writeBytes(twoHyphens + boundary + lineEnd);
    outputStream.writeBytes("Content-Disposition: form-data; name=\"uploadedfile\";filename=\"" + pathToOurFile +"\"" + lineEnd);
    outputStream.writeBytes(lineEnd);

使用上面的代码,我将图像上传到服务器,但不是如何通过 post 传递参数字符串类型

有人知道吗?

【问题讨论】:

标签: android httpurlconnection


【解决方案1】:

对于每个参数,其中 paramName=paramData:

outputStream.writeBytes(twoHyphens + boundary + lineEnd);
outputStream.writeBytes('Content-Disposition: form-data; name="paramName"' + lineEnd);
outputStream.writeBytes(lineEnd);
outputStream.writeBytes(paramData);

【讨论】:

  • 我使用了 String param="valor"; outputStream.writeBytes(twoHyphens + boundary + lineEnd); outputStream.writeBytes("Content-Disposition: form-data; name=\"param\"" + lineEnd); outputStream.writeBytes(lineEnd); outputStream.writeBytes(param);并且不起作用,'会知道它是错误的吗?
  • 删除文件提交后是否有效?文件是否需要在参数数据之后提交?
  • 完成!将参数字符串类型放在文件类型参数之后
【解决方案2】:

我发现这个博客对于编写一些多部分表单数据代码很有用:
http://blog.rafaelsanches.com/2011/01/29/upload-using-multipart-post-using-httpclient-in-android/

不要忘记更改 boundary 变量以匹配您在 HttpURLConnection 中指定的用于将多部分表单发送到服务器的内容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-25
    • 2015-09-28
    • 2012-08-17
    • 2019-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多