【问题标题】:Apache HttpClient 4.0-beta2 httppost, how to add a referer?Apache HttpClient 4.0-beta2 httppost,如何添加referer?
【发布时间】:2009-07-19 19:04:37
【问题描述】:

我正在尝试向 Apache HttpClient (httpclient-4.0-beta2) 中的 http 帖子添加引用。

我找到了一些执行此操作的示例代码。该代码有效,但我想知道是否没有比使用(不祥地命名的)addRequestInterceptor 更简单、更直接的方法来添加引用者,它似乎将(yikes!)内部类作为参数。

下面的代码以“//添加引用标头”开头。我是新手,这段代码做了几件我看不懂的事情。这真的是向我的 http 帖子添加引用者的最简单方法吗?

感谢您的任何指点。

// initialize request parameters
List<NameValuePair> formparams = new ArrayList<NameValuePair>();
formparams.add(new BasicNameValuePair("firstName", "John"));
formparams.add(new BasicNameValuePair("lastName", "Doe"));

// set up httppost
UrlEncodedFormEntity entity = new UrlEncodedFormEntity(formparams, "UTF-8");
HttpPost httppost = new HttpPost(submitUrl);
httppost.setEntity(entity);

// create httpclient
DefaultHttpClient httpclient = new DefaultHttpClient();

// add the referer header, is an inner class used here?
httpclient.addRequestInterceptor(new HttpRequestInterceptor()
{   
    public void process(final HttpRequest request, 
                        final HttpContext context) throws HttpException, IOException
    {
        request.addHeader("Referer", referer);
    }
});

// execute the request
HttpResponse response = httpclient.execute(httppost);

【问题讨论】:

    标签: java httpclient


    【解决方案1】:

    任何不做的理由:

    httppost.addHeader("Referer", referer);
    

    ? HttpPost 子类(间接)AbstractHttpMessage 所以你应该能够以这种方式添加标题。

    【讨论】:

    • 非常感谢您的帮助。我很确定我首先尝试过这样的事情,并且在失败时开始寻找另一种方式。然而,当我现在尝试它时,它第一次起作用! :) 可能是我犯的一个小错误导致我误入歧途(我不会承认我已经为此工作了多少天......)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-29
    • 1970-01-01
    • 2012-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多