2014-07-17 3 views
0

Android에서 Xbox 음악 API로 음악 플레이어를 만들려고합니다.Xbox 음악 API로 안드로이드에 안성맞춤

http://msdn.microsoft.com/en-us/library/dn546686.aspx

을 지금까지 나는이 HttpPost 일을 만들려고 곳에서 AsyncTask를이 (편안하고 서비스에 새로운 메신저) : 지금까지 내가 문서가 여기에 말한대로 정확히 액세스 토큰을 검색하는 방법을 알아낼 질수

이 내 코드는 다음 Log.wi에

@Override 
protected String doInBackground(String... strings) { 
    String postData = "client_id=" + Constants.CLIENT_ID 
      + "&client_secret=" + Constants.CLIENT_SECRET 
      + "&scope=" + Constants.SCOPE 
      + "&grant_type=" + Constants.GRANT_TYPE; 
    try { 
     HttpClient client = new DefaultHttpClient(); 
     HttpPost request = new HttpPost(Constants.SERVICE + "/" + postData); 
     HttpResponse response = client.execute(request); 
     HttpEntity entity = response.getEntity(); 
     InputStream inputStream = entity.getContent(); 
     BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"),8); 
     String line = null; 
     while((line=bufferedReader.readLine())!=null){ 
      Log.w(Constants.TAG, line); 
     } 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
    return null; 
} 

는 "서버 응용 프로그램 오류"를 표시하는 페이지를보고하고 내가 제대로이 요청을 수행하는 방법을 잘 모릅니다.

"Constants.LIKE"는 모두 설명서에 필요한 정보의 문자열입니다.

편집 :이 내 상수의 경우 사람에

public static final String TAG="MUSIC_PLAYER_APP"; 
public static final String CLIENT_ID="musicplayer_internship_ldurazo"; 
public static final String CLIENT_SECRET=""; 
public static final String CALLBACK_URL="http://luisdurazoa.tumblr.com/"; 
public static final String SERVICE="https://datamarket.accesscontrol.windows.net/v2/OAuth2-13"; 
public static final String SCOPE="http://music.xboxlive.com"; 
public static final String TOKEN="TOKEN"; 
public static final String GRANT_TYPE="client_credentials"; 

답변

0

이 같은 문제 O를 얻을 난 내 코드를 수정하고 문제를 해결 (비밀이 내 응용 프로그램의 보안을 위해 숨김)하는

:

@Override 
protected String doInBackground(String... strings) { 
    try { 
     StringBuilder stringBuilder = new StringBuilder(); 
     HttpClient client = new DefaultHttpClient(); 
     HttpPost request = new HttpPost(Constants.SERVICE); 
     List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(4); 
     nameValuePairs.add(new BasicNameValuePair("client_id",Constants.CLIENT_ID)); 
     nameValuePairs.add(new BasicNameValuePair("client_secret",Constants.CLIENT_SECRET)); 
     nameValuePairs.add(new BasicNameValuePair("scope",Constants.SCOPE)); 
     nameValuePairs.add(new BasicNameValuePair("grant_type",Constants.GRANT_TYPE)); 
     request.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 
     HttpResponse response = client.execute(request); 
     HttpEntity entity = response.getEntity(); 
     InputStream inputStream = entity.getContent(); 
     BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"),8); 
     String line = null; 
     while((line=bufferedReader.readLine())!=null){ 
      stringBuilder.append(line); 
      Log.w(Constants.TAG, line); 
     } 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
    return null; 
} 

누락 된 사항은 "line"문자열에서 JSON 개체를 만드는 것입니다. 내 코드로 로그에 액세스 토큰을 볼 수 있습니다.