2016-07-12 5 views
1

スポーツデータが公開されているWebサイトから入手したコードをAPI(http://developer.fantasydata.com)で使用しようとしています。Httpclient-4.5.2.jar setEntityは "シンボルを見つけることができません"(JAVA - netbeans 8)

このサイトでは、httpリクエストを行うためのサンプルJAVAコードを提供しています。何らかの理由で宣言した要求(リクエスト)のためのsetEntity方法は、「シンボルエラーを見つけることができません表示され

が問題の原因行が request.setEntity(reqEntity)
package epl.fixtures.test.app; 

import java.net.URI; 
import org.apache.http.HttpEntity; 
import org.apache.http.HttpResponse; 
import org.apache.http.client.HttpClient; 
import org.apache.http.client.methods.HttpGet; 
import org.apache.http.client.utils.URIBuilder; 
import org.apache.http.entity.StringEntity; 
import org.apache.http.impl.client.HttpClients; 
import org.apache.http.util.EntityUtils; 

public class EPLFixturesTestApp { 

    /** 
    * @param args the command line arguments 
    */ 
    public static void main(String[] args) { 
     // TODO code application logic here 

     HttpClient httpclient = HttpClients.createDefault(); 

     try 
     { 
      URIBuilder builder = new URIBuilder("https://api.fantasydata.net/soccer/v2/json/CompetitionDetails/EPL"); 


      URI uri = builder.build(); 
      HttpGet request = new HttpGet(uri); 
      request.setHeader("Ocp-Apim-Subscription-Key", "****************"); 


      // Request body 
      StringEntity reqEntity = new StringEntity("{body}"); 
      request.setEntity(reqEntity); 

      HttpResponse response = httpclient.execute(request); 
      HttpEntity entity = response.getEntity(); 

      if (entity != null) 
      { 
       System.out.println(EntityUtils.toString(entity)); 
      } 
     } 
     catch (Exception e) 
     { 
      System.out.println(e.getMessage()); 
     } 

    } 

} 

である;。ライン

誰も私にこれを説明することはできますか?私は、Apacheから関連するすべてのjarファイルをプロジェクトに追加したしてください、ライブラリディレクトリ。

おかげ

答えて

0

HTTPGET setEntityメソッドを持っていません。 リクエストボディはGETリクエストで意味を持たないので、これは意味があります。

HttpEntityEnclosingRequestを実装しているクラスのみがこのメソッドを持っています。

私はドキュメントがそれを使用する理由はわかりませんが、2行を省略しても意味がありません。コード:

URIBuilder builder = new URIBuilder("https://api.fantasydata.net/soccer/v2/json/CompetitionDetails/EPL"); 
URI uri = builder.build(); 
HttpGet request = new HttpGet(uri); 
request.setHeader("Ocp-Apim-Subscription-Key", "****************"); 
HttpResponse response = httpclient.execute(request); 
HttpEntity entity = response.getEntity(); 

if (entity != null) 
{ 
    System.out.println(EntityUtils.toString(entity)); 
} 
+0

なぜコード例に入れましたか?どのようなアイデアが私はそれを修正することができますか? – stevenbranigan82

+0

コードが間違っているようです。私は古いHttpClientバージョンを見ようとしましたが、HttpGetではこのメソッドを持たないようです。私の更新された答えを見てください。 – johnnyaug

+0

乾杯。ジョニー。私はその行を省略して、URLがhttpsであると信じているSSLエラーを受け取りました。私はsを削除し、httpで試しました。私はリクエストヘッダーを受け取った。ご協力いただきありがとうございます。私は会社に電子メールを送り、彼らのコードを見直すように要請した。私は彼らからSSL証明書が必要だと思うし、その間にHttpClientについてもう少し学ぶことを試みます。再度、感謝します。 – stevenbranigan82

関連する問題