2016-07-15 6 views
-1

WebサービスとJsonには疑問があります。実際に私はいくつかのジョークのウェブサイトに関連するURL http://api.icndb.com/jokes/randomを持っています。androidのURLを使ってデータを取得する方法

上記のURLをクリックすると、jsonデータを見ることができます。今私の問題は、1つのアプリケーションを実行しようとしていることです。つまり、私のアクティビティでボタンとテキストビューが1つあります。

ボタンをクリックすると、上記のウェブサイトからジョークを取得し、テキストビューで表示する必要があります。ボタンをクリックするたびに違う冗談が表示されるはずです。

上記のURLを使用してデータを取得する方法を教えてください。

+0

uが任意のコードを試してみたのですか? –

+0

以下の3つの答えは全て正しい – iAndroid

答えて

-1

ここにコードを入れます。あなたはAsyncTaskで使用する必要があります。

public static String getJSONFromUrl(String url) { 

    // make HTTP request 
    try { 
     DefaultHttpClient httpClient = new DefaultHttpClient(); 
     HttpGet httpGet = new HttpGet(url); 
     HttpResponse httpResponse = httpClient.execute(httpGet); 
     HttpEntity httpEntity = httpResponse.getEntity(); 
     is = httpEntity.getContent(); 

    } catch (UnsupportedEncodingException e) { 
     e.printStackTrace(); 
    } catch (ClientProtocolException e) { 
     e.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 

    try { 

     BufferedReader reader = new BufferedReader(new InputStreamReader(is, "utf-8"), 8); 
     StringBuilder sb = new StringBuilder(); 
     String line = null; 
     while ((line = reader.readLine()) != null) { 
      sb.append(line + "\n"); 
     } 
     is.close(); 
     Log.e("Log","Url1="+url); 
     json = sb.toString(); 

    } catch (Exception e) { 
     Log.e(TAG, "Error converting result " + e.toString()); 
    } 

    // try parse the string to a JSON object 
    try { 
     jObj = new JSONObject(json); 
    } catch (JSONException e) { 
     Log.e(TAG, "Error parsing data " + e.toString()); 
    } 

    // return JSON String 
    return json; 
} 

結果を取得した後、解析します。

-1

あなたの問題は、データを取得する方法であれば、あなたはこのソリューションをご覧ください: How to get JSON from URL in Javascript?

あなたが同じセッションで同じURLを呼び出している場合、それは結果をキャッシュします。

あなたはリクエストをキャッシュしないように強制するために、偽のパラメータをurlに追加します。

たとえば、URLにgetTimeを追加できます。例えば

var d = new Date(); 
var n = d.getTime(); 
var url = "http://api.icndb.com/jokes/random?n=" + n; 

http://api.icndb.com/jokes/random?n=1468578025752 http://api.icndb.com/jokes/random?n=819929720000

関連する問題