Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在执行HTTP Post时,我们如何传递参数?_Http_Blackberry_Post - Fatal编程技术网

在执行HTTP Post时,我们如何传递参数?

在执行HTTP Post时,我们如何传递参数?,http,blackberry,post,Http,Blackberry,Post,我正在开发一个应用程序,我们必须使用HTTP POST将特定的web api参数传递给web应用程序。 如: apimethod名称 参数1值 参数2值 那么我是使用字符串还是URLEncodedPostData来发送数据呢? 如果你能帮我写一个代码就好了。 我正在使用类似的东西,但它不会将数据发布到服务器。 虽然响应代码是ok/200,但在读取httpresponse输入流时,我也会得到一个经过解析的html响应。但是代码没有发布任何内容。因此无法获得预期的响应 _p

我正在开发一个应用程序,我们必须使用HTTP POST将特定的web api参数传递给web应用程序。 如: apimethod名称 参数1值 参数2值 那么我是使用字符串还是URLEncodedPostData来发送数据呢? 如果你能帮我写一个代码就好了。 我正在使用类似的东西,但它不会将数据发布到服务器。 虽然响应代码是ok/200,但在读取httpresponse输入流时,我也会得到一个经过解析的html响应。但是代码没有发布任何内容。因此无法获得预期的响应

             _postData.append("method", "session.getToken");
             _postData.append(  "developerKey", "value");
             _postData.append(  "clientID", "value");

            _httpConnection = (HttpConnection) Connector.open(URL, Connector.READ_WRITE);
            String encodedData = _postData.toString();
            _httpConnection.setRequestMethod(HttpConnection.POST);
            _httpConnection.setRequestProperty("User-Agent", "BlackBerry/3.2.1");
            _httpConnection.setRequestProperty("Content-Language", "en-US");
            _httpConnection.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
            _httpConnection.setRequestProperty("Content-Length",(new Integer(encodedData.length())).toString());
            os = _httpConnection.openOutputStream();
            os.write(requeststring.getBytes());`

发布的参数通常在响应体中发送,这意味着URL编码它们是不合适的。引用HTTP/1.1协议:

  Note: The "multipart/form-data" type has been specifically defined
  for carrying form data suitable for processing via the POST
  request method, as described in RFC 1867 [15].

发布的参数通常在响应体中发送,这意味着URL编码它们是不合适的。引用HTTP/1.1协议:

  Note: The "multipart/form-data" type has been specifically defined
  for carrying form data suitable for processing via the POST
  request method, as described in RFC 1867 [15].

post方法允许您使用非常任意的消息体-因此它是服务器想要的任何格式。

post方法允许您使用非常任意的消息体-因此它是服务器想要的任何格式。

您上面发布的代码看起来是正确的-尽管您还想做一些事情(可能您已经这样做了,但没有将其包含在代码中):

  • 将所有字节写入输出流后关闭输出流
  • 在连接上调用
    getResponseCode()
    ,以便它实际发送请求

  • 您上面发布的代码看起来是正确的-尽管您还想做一些事情(可能您已经做了,但没有将其包含在代码中):

  • 将所有字节写入输出流后关闭输出流
  • 在连接上调用
    getResponseCode()
    ,以便它实际发送请求

  • 你能解释第二点吗?代码行也会很好。我调用getResponseCode()只是想知道连接是否正常/200。但它实际上是如何发送请求的?如果你得到的是200响应代码,它就是在发送请求。据我所知,这是对getResponseCode()的调用这实际上触发了要发送的请求-基本上你告诉API你已经完成了请求的设置,你想发送请求并得到响应。应用程序正在发送post数据。只是api在处理数据时出现了一些问题。无论如何,谢谢。您能解释第二点吗?如果您能提供代码行,我们将不胜感激。我确实调用了getResponseCode()就像只是想知道连接是否正常/200。但是它实际上是如何发送请求的?如果你得到的是200响应代码,它就是在发送请求。从我所能知道的,这是对getResponseCode()的调用这实际上触发了发送请求-基本上你告诉API你已经完成了请求设置,你想发送请求并得到响应。好的,我使用var_dump(_post)检查了它。应用程序正在发送post数据。只是API处理数据时出现了一些问题。无论如何,谢谢。