3

Yelp API にアクセスしようとしています。キーを取得し、何をする必要があるかを説明する約 40 の記事を読み、すべてを試しました。キーとそうでないものは有効です。私は以下を取得しています:

05-16 17:39:54.955: E/AndroidRuntime(538): java.lang.NoClassDefFoundError: oauth.signpost.commonshttp.CommonsHttpOAuthConsumer

commons-codec-1.6 jar、signpost-commonshttp4-1.2.1.2.jar、および signpost-core-1.2.1.2.jar をインポートしました。

まだエラーメッセージが表示されます。何か助けはありますか?

import java.net.HttpURLConnection;
import java.net.URL;
import java.util.HashMap;
import java.util.Map;

import oauth.signpost.OAuth;
import oauth.signpost.OAuthConsumer;
import oauth.signpost.commonshttp.CommonsHttpOAuthConsumer;
import oauth.signpost.exception.OAuthCommunicationException;
import oauth.signpost.exception.OAuthExpectationFailedException;
import oauth.signpost.exception.OAuthMessageSignerException;


/**
 * Example for accessing the Yelp API.
 */
public class Yelp {
  private String consumerKey = "";
  private String consumerSecret = "";
  private String token = "";
  private String tokenSecret = "";

  /**
   * Search with term and location.
   *
   * @param term Search term
   * @param latitude Latitude
   * @param longitude Longitude
   * @return JSON string response
   */
  public String search(String term, double latitude, double longitude) throws OAuthMessageSignerException, OAuthExpectationFailedException, OAuthCommunicationException {



    try {
        OAuthConsumer myConsumer = new CommonsHttpOAuthConsumer(consumerKey, consumerSecret);
        myConsumer.setTokenWithSecret(token, tokenSecret);

        String urlToPost = "http://api.yelp.com/v2/search";
        Map<String, String> myMap = new HashMap<String, String>();
        myMap.put(OAuth.OAUTH_CONSUMER_KEY, consumerKey);
        myMap.put(OAuth.OAUTH_TOKEN, token);
        myMap.put(OAuth.OAUTH_SIGNATURE_METHOD, "HMAC-SHA1");
        myMap.put(OAuth.OAUTH_SIGNATURE, tokenSecret);
        myMap.put(OAuth.OAUTH_TIMESTAMP, Long.toString(System.currentTimeMillis() / 1000L));
        myMap.put(OAuth.OAUTH_NONCE, "asdf");

        urlToPost = OAuth.addQueryParameters(urlToPost, myMap);

        HttpURLConnection myCon = (HttpURLConnection) (new URL(urlToPost)).openConnection();
        myConsumer.sign(myCon);

        myCon.connect();
        return myCon.getResponseMessage();
    } catch (Exception e) {
        e.printStackTrace();
    }
    return null;
  }
}
4

2 に答える 2

5

Project -> Properties に移動し、Java Build Path -> Order and Export タブで、これらの JAR がチェックされていることを確認します。

そして、将来の参考のために、それらがあなたの本当の鍵である場合、私はそれらを公開ウェブサイトに置かないようにします. 言ってるだけ。

于 2012-05-16T17:48:38.253 に答える
0

Androidアプリでも同じ問題に直面しています。signpost -core-1.2.1.2 を使用すると、 CommonsHttpOAuthConsumer を解決できませんでした。http://www.java2s.com/Code/Jar/s/Downloadsignpostcommonshttp41211jar.htmからダウンロードします。

出来た。

于 2014-12-23T04:25:18.940 に答える