发送与头HTTP GET请求 [英] Send HTTP GET request with header

查看:178
本文介绍了发送与头HTTP GET请求的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是我的Andr​​oid应用我想请求用GET参数的URL和读取响应。 在要求我必须添加 X-ZIP 头。

From my Android app I want to request a URL with GET parameters and read the response. In the request I must add a x-zip header.

的URL是一样的东西。

The URL is something like

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

能否有人向我提供code是什么?

Can some one provide me code for that?

有两点很重要:这是一个GET请求,包含 X-ZIP

Two things are important: that it is a GET request and contains the x-zip header .

编辑:

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();
    }

我尝试用这个code,但我得到code与.NET错误:对象引用不设置到对象的实例... 我想,但我不知道这是否为 X-ZIP 头,在我的code头好吗?

I try with this code but I get code with .net error: Object reference not set to an instance of an object... I think but I'm not sure this if for x-zip header, is header in my code ok?

推荐答案

下面就是我们使用我们的应用程序设置请求头一个code摘录。你会注意到,我们只能在POST或PUT,而是(通过一个请求拦截器)添加头的一般方法是用GET以及设置CONTENT_TYPE头。

Here's a code excerpt we're using in our app to set request headers. You'll note we set the CONTENT_TYPE header only on a POST or PUT, but the general method of adding headers (via a request interceptor) is used for GET as well.

/**
 * 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 ....//

}

这篇关于发送与头HTTP GET请求的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆