因此,我正在使用Java的Signpost OAuth库。我在使用Apache Commons HTTP库时遇到了一些麻烦。看下面的代码:

URL url = new URL("http://api.neoseeker.com/forum/get_pm_counts.json");
HttpRequest request = (HttpRequest) url.openConnection();

consumer.sign(request);

request.connect();

System.out.println("Response: " + request.getResponseCode() + " "
        + request.getResponseMessage());

这是从this example获取的。您可以看到request曾经是HttpURLConnection,但是由于我将使用Apache Commons HTTP库,因此将其更改为HttpRequest对象。现在,当我调用connect()getResponseCode()getResponseMessage()时遇到错误,因为这些函数是针对HttpURLConnection的。我将使用HttpRequest中的哪些函数,以便使代码能够正确编译和运行?谢谢!

最佳答案

Signpost有一个单独的模块,用于使用Apache的HTTP客户端。您需要为此使用CommonsHttpOAuthConsumer。

该模块位于此处-http://code.google.com/p/oauth-signpost/downloads/detail?name=signpost-commonshttp4-1.2.1.1.jar&can=2&q=

一些使用它的示例代码在这里-http://code.google.com/p/oauth-signpost/wiki/ApacheCommonsHttp4,但是它归结为实例化CommonsHttpOAuthConsumer而不是普通的实例。

如果您使用的是maven,则坐标在这里,当我试图找出答案时,我找不到任何地方记录的坐标...

<dependency>
    <groupId>oauth.signpost</groupId>
    <artifactId>signpost-commonshttp4</artifactId>
    <version>1.2.1.1</version>
</dependency>

08-27 13:57