如何将日期标题添加到httpGet

时间:2011-08-19 21:50:33

标签: java apache-httpclient-4.x

我目前正在使用HttpGet(apache)方法向Web服务发出请求。 当我打电话给服务器时,它给了我这个错误:

“请求时间和服务器时间之间的差异太大” 然后我才知道服务器需要在GMT中有请求,所以我确实添加了一个标题(addHeader)来做同样的事情。但我仍然有同样的问题。

任何想法/想法?

一些代码:

    final String url = "ip address";
    final HttpGet request = new HttpGet(url);
    final ArrayList<NameValuePair> nameValues = new ArrayList<NameValuePair>();
    nameValues.add(new BasicNameValuePair("Authorization", "XXXX"));
    nameValues.add(new BasicNameValuePair("date", "Fri, 19 Aug 2011 22:39:13 GMT"));
    for (final NameValuePair h : nameValues)
    {
        request.addHeader(h.getName(), h.getValue());
    }
    final HttpClient client = new DefaultHttpClient();
    HttpResponse httpResponse;
    try
    {
        httpResponse = client.execute(request);
        responseCode = httpResponse.getStatusLine().getStatusCode();
        message = httpResponse.getStatusLine().getReasonPhrase();
        final HttpEntity entity = httpResponse.getEntity();

        if (entity != null)
        {
            final InputStream instream = entity.getContent();
            response = convertStreamToString(instream);
            instream.close();
        }
    }
    catch (final Exception e)
    {
    }

1 个答案:

答案 0 :(得分:0)

我能够解决它。
我发现当我用CST打电话时服务器已设置为GMT。