在HttpURLConnection中更改POST参数

时间:2017-11-18 21:28:23

标签: java android http post

需要使用不同的POST参数向同一个url发送多个请求。对于设置POST参数,使用以下代码(并且它可以工作):

  

private void setPostParams(HttpURLConnection connection,String      paramsStr){

    byte[] outputInBytes=null;
    try {
        outputInBytes = paramsStr.getBytes("UTF-8");
    }
    catch (UnsupportedEncodingException e) {};
    OutputStream os;
    try {
        os = connection.getOutputStream();
        os.write( outputInBytes );
        os.close();
    }
    catch (IOException e) {}
}

但是,在设置下一个参数之前,需要删除前一个参数,我不知道是否可能。当然,可以保存基地'连接,每次都将参数添加到新的连接副本。但是,这种方式似乎很难看,特别是因为不可能使用简单的HttpURLConnection connectionBase=connection来创建指向同一连接的两个指针。

我尝试在调试会话中检查HttpURLConnection以找到保存POST参数字符串的位置,但什么也没找到。 也许,可以从HttpURLConnection对象编辑以前添加的POST参数,或者唯一的方法是使用' base connection'?

提前致谢

1 个答案:

答案 0 :(得分:0)

  

但是,在设置下一个参数之前,需要删除前一个参数

不,不是。

  

我不知道是否可能。

既不可能也不必要。

  

当然,可以保存基地'连接

不,不是。没有'基础连接'保存,并且它们不可重复使用。

  

并且每次都将参数添加到新的连接副本。

您没有为连接添加参数。您正在将它们写入输出流,并将它们发送到网络。

  

然而,这种方式似乎很难看,特别是因为不可能使用简单的HttpURLConnection connectionBase = connection来创建指向同一连接的两个指针。

您不需要指向同一连接的两个指针。你不能重复使用它们。 HttpURLConnection在幕后进行TCP连接池化,如果这是你担心的事情。

  

我尝试在调试会话中检查HttpURLConnection以找到保存POST参数字符串的位置

它们未保存在HttpURLConnection中。它们在HTTP标头之后被发送到服务器。

  

但一无所获。

没有什么可以找的。

  

也许,可以从HttpURLConnection对象

编辑以前添加的POST参数

他们无法进行编辑。

  

或唯一的方法是使用'基本连接'?

没有这样的事情。

你在这里完全咆哮错误的树。您需要说明实际问题,如果有的话。你提到的所有问题都是虚构的。