发送带有标头的HTTP GET请求

乔万:

我想从我的Android应用程序请求一个带有GET参数的URL并读取响应。在请求中,我必须添加x-zip标题。

网址就像

http://example.com/getmethod.aspx?id=111&method=Test

有人可以为我提供代码吗?

有两点很重要:这是一个GET请求,并且包含x-zipheader。

编辑:

try {
    HttpClient client = new DefaultHttpClient();  
    String getURL = "http://example.com/getmethod.aspx?id=111&method=Test";
    HttpGet get = new HttpGet(getURL);
    get.setHeader("Content-Type", "application/x-zip");
    HttpResponse responseGet = client.execute(get);  
    HttpEntity resEntityGet = responseGet.getEntity();  
    if (resEntityGet != null) {  
        //do something with the response
        Log.i("GET ",EntityUtils.toString(resEntityGet));
    }
} catch (Exception e) {
    e.printStackTrace();
}

我尝试使用此代码,但收到带有.net错误的代码:Object reference not set to an instance of an object...我想,但是我不确定如果x-zip是标题,代码中的标题是否可以

提示:

这是我们在应用程序中用来设置请求标头的代码摘录。您会注意到我们仅在POST或PUT上设置了CONTENT_TYPE头,但是GET也使用添加头(通过请求拦截器)的常规方法。

/**
 * HTTP request types
 */
public static final int POST_TYPE   = 1;
public static final int GET_TYPE    = 2;
public static final int PUT_TYPE    = 3;
public static final int DELETE_TYPE = 4;

/**
 * HTTP request header constants
 */
public static final String CONTENT_TYPE         = "Content-Type";
public static final String ACCEPT_ENCODING      = "Accept-Encoding";
public static final String CONTENT_ENCODING     = "Content-Encoding";
public static final String ENCODING_GZIP        = "gzip";
public static final String MIME_FORM_ENCODED    = "application/x-www-form-urlencoded";
public static final String MIME_TEXT_PLAIN      = "text/plain";

private InputStream performRequest(final String contentType, final String url, final String user, final String pass,
    final Map<String, String> headers, final Map<String, String> params, final int requestType) 
            throws IOException {

    DefaultHttpClient client = HTTPClientFactory.newClient();

    client.getParams().setParameter(HttpProtocolParams.USER_AGENT, mUserAgent);

    // add user and pass to client credentials if present
    if ((user != null) && (pass != null)) {
        client.getCredentialsProvider().setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(user, pass));
    }

    // process headers using request interceptor
    final Map<String, String> sendHeaders = new HashMap<String, String>();
    if ((headers != null) && (headers.size() > 0)) {
        sendHeaders.putAll(headers);
    }
    if (requestType == HTTPRequestHelper.POST_TYPE || requestType == HTTPRequestHelper.PUT_TYPE ) {
        sendHeaders.put(HTTPRequestHelper.CONTENT_TYPE, contentType);
    }
    // request gzip encoding for response
    sendHeaders.put(HTTPRequestHelper.ACCEPT_ENCODING, HTTPRequestHelper.ENCODING_GZIP);

    if (sendHeaders.size() > 0) {
        client.addRequestInterceptor(new HttpRequestInterceptor() {

            public void process(final HttpRequest request, final HttpContext context) throws HttpException,
                IOException {
                for (String key : sendHeaders.keySet()) {
                    if (!request.containsHeader(key)) {
                        request.addHeader(key, sendHeaders.get(key));
                    }
                }
            }
        });
    }

    //.... code omitted ....//

}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

发送带有对象标签的HTTP请求标头

如何发送带有标头参数的HTTP请求?

Ruby-发送带有标头的GET请求

带有HTTP标头“ Accept”的HttpURLConnection GET请求

如何发送带有请求的HTTP / 2伪标头?

无法使用 axios 发送带有标头的获取请求

AFNetworking发送带有请求的标头

Python,发送带有标头和 cookie 的请求

发送带有客户端请求的406的有效HTTP是否没有Accept标头

使用restTemplate发送带有身份验证标头的GET请求

如何在 Angular 7 中的 get 请求中发送带有标头的 apikey

如何为带有wreq的请求设置HTTP标头?

Backgrid / Backbone Pageable:带有GET请求的自定义HTTP标头

Python http get-无法复制带有标头的curl请求

使用AngularJS发送HTTP标头请求

带授权令牌标头的有角$ http GET请求

如何在ASP.NET MVC中发送带有GET请求的Content-Type标头?

无法在请求库中发送带有标头的获取请求

如何使用带有某些标头的请求 Python 发送文件?

如何在Swagger UI中发送带有请求的自定义标头?

AngularJS:无法发送带有适当的CORS标头的POST请求

如何使用Spring的WebClient发送带有自定义标头的删除请求?

Node.js:如何使用请求模块发送带有表单数据的标头?

在标头php中发送带有x-auth-token的请求

如何使用uget发送一些带有请求的标头?

使用Flash发送带有自定义标头的POST请求

将标头写入http get请求

创建HTTP GET标头请求

HttpClient :通过代理发送的 http 2 请求没有升级标头