Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.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 我们如何通过GET方法发送数据?_Http_Blackberry_Https_Get - Fatal编程技术网

Http 我们如何通过GET方法发送数据?

Http 我们如何通过GET方法发送数据?,http,blackberry,https,get,Http,Blackberry,Https,Get,我正在创建HTTPS连接并将请求属性设置为GET: _httpsConnection = (HttpsConnection) Connector.open(URL, Connector.READ_WRITE); _httpsConnection.setRequestMethod(HttpsConnection.GET); 但是如何发送GET参数呢? 我是否按如下方式设置请求属性: _httpsConnection.setRequestProperty("method", "session.ge

我正在创建HTTPS连接并将请求属性设置为GET:

_httpsConnection = (HttpsConnection) Connector.open(URL, Connector.READ_WRITE);
_httpsConnection.setRequestMethod(HttpsConnection.GET);
但是如何发送GET参数呢? 我是否按如下方式设置请求属性:

_httpsConnection.setRequestProperty("method", "session.getToken");
_httpsConnection.setRequestProperty("developerKey", "value");
_httpsConnection.setRequestProperty("clientID", "value");
还是必须写入连接的输出流


或者我需要通过将参数/值附加到url来发送参数/值吗?

是的,在GET中几乎可以发送标题和属性。此外,您被限制为特定数量的字符,这取决于浏览器-我似乎记得通常是1024或2000个字符。

HTTP GET
将数据参数作为URL中编码的键/值对发送,就像:

GET /example.html                      // without parameters
GET /example.html?Id=         1        // with one basic parameter
GET /example.html?Id=1&Name=John%20Doo // with two parameters, second encoded
注意:字符分隔符遵循以下规则:

? - split URL in two pieces: adddress to left and paremeters to right
& - must be used to separate on parameter from another

您必须了解特定于平台的本机字符串编码函数。Javascript使用
escape
,C#使用
HttpUtility.UrlEncode
调用
Connection.setRequestProperty()
将设置请求头,这可能不是您在这种情况下想要做的(如果您问我,我认为调用它setRequestHeader会是一个更好的选择)。有些代理可能会删除或重写非标准头的名称,因此最好还是坚持通过URL参数在GET URL中传递数据的约定

在BlackBerry上执行此操作的最佳方法是使用
URLEncodedPostData
类对URL参数进行正确编码:

URLEncodedPostData data = new URLEncodedPostData("UTF-8", false);
data.append("method", "session.getToken");
data.append("developerKey", "value");
data.append("clientID", "value");
url = url + "?" + data.toString();

我不是黑莓的开发者。但您可以使用网络嗅探器(IMO overkill)或只输出请求信息的简单服务器端脚本轻松测试代码。例如,在php中,您可以使用:嘿,我需要通过标头发送参数/值还是只将其附加到URL?您可以只将其附加到URL。不知道您的环境如何工作,但最终您的请求参数将包含在URL中。您可以直接这样做(使用&来分隔键/值对,=键和值之间,字符串中的URL转义字符),或者希望让您的API自动完成这些工作。