2017-04-02 9 views
-1

Microsoft Cognitive Servicesのサンプルコードを使用しています。 StringEntityクラスを使用して、REST APIにリクエストを行います。 Javaコンパイラが 'symbol' StringEntityを見つけることができないようですか?これの理由とこれを解決する方法は何でしょうか?そのほとんどは、Microsoft APIのテストサンプルから取られorg.apache.httpパッケージをインポートした後でもjavaがStringEntityクラスを見つけられないのはなぜですか?

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.impl.client.HttpClients; 
import org.apache.http.util.EntityUtils; 
import org.apache.http.*; 


public class NEWS_FETCHER 
{ 
    public static void main(String[] args) 
    { 
     HttpClient httpclient = HttpClients.createDefault(); 

     try 
     { 
      URIBuilder builder = new URIBuilder("https://api.cognitive.microsoft.com/bing/v5.0/news/search"); 

      builder.setParameter("q", "microsoft"); 
      builder.setParameter("count", "10"); 
      builder.setParameter("offset", "0"); 
      builder.setParameter("mkt", "en-us"); 
      builder.setParameter("safeSearch", "Moderate"); 

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

      // Request body 
      StringEntity reqEntity = new StringEntity(""); 
      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()); 
     } 
    } 
} 

- は、ここにコードを行きます。 https://dev.cognitive.microsoft.com/docs/services/56b43f72cf5ff8098cef380a/operations/56b449fbcf5ff81038d15cdf

+0

あなたはjarファイルをインポートしたのですか?あなたはMavenを使用していますか?またはjarファイルを手動でインポートしましたか? –

+0

もしあなたがmavenやgradleを使っているのであれば、jarがビルドパスの中に正しくないのと同じようにproject.seemsを更新してください。 –

+0

@Rajith Pemabandu、必要なクラスの残りの部分にはエラーが表示されますが、StringEntityのみが表示されるので、問題はインポートではないと思います。私はどのパッケージ文字列エンティティに配置されているのだろうか? org.apache.http。*;パッケージ全体をインポートしましたが、それでも動作しませんでした。 –

答えて

1

クラスStringEntityは、パッケージorg.apache.http.entityであるので、あなたはそのための正しいインポートを追加する必要があります。

import org.apache.http.entity.StringEntity 
+0

は 'import org.apache.http。*'を実行します;このインポートは含まれていませんか? –

+0

いいえ。サブパッケージは自動的にインポートされません。 – dunni

関連する問題