2016-07-26 5 views
0

https://player.vimeo.com/video/136004191/config要求405応答コードのエラーを取得:ここVimeoのは、私はエラーを取得mの間、Vimeoのから実際のURLを取得しようとしている

response code:405 
07-26 11:42:46.236 22054-22183/com.sample.samplevideoview W/System.err: java.io.FileNotFoundException: https://player.vimeo.com/video/136004191/config 
07-26 11:42:46.236 22054-22183/com.sample.samplevideoview W/System.err:  at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:238) 
07-26 11:42:46.236 22054-22183/com.sample.samplevideoview W/System.err:  at com.android.okhttp.internal.huc.DelegatingHttpsURLConnection.getInputStream(DelegatingHttpsURLConnection.java:210) 
07-26 11:42:46.236 22054-22183/com.sample.samplevideoview W/System.err:  at com.android.okhttp.internal.huc.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java) 
07-26 11:42:46.237 22054-22183/com.sample.samplevideoview W/System.err:  at com.sample.samplevideoview.AsyncHttpClient$AsyncDataRequestHideDialog.doInBackground(AsyncHttpClient.java:353) 
07-26 11:42:46.237 22054-22183/com.sample.samplevideoview W/System.err:  at com.sample.samplevideoview.AsyncHttpClient$AsyncDataRequestHideDialog.doInBackground(AsyncHttpClient.java:287) 
07-26 11:42:46.237 22054-22183/com.sample.samplevideoview W/System.err:  at android.os.AsyncTask$2.call(AsyncTask.java:295) 
07-26 11:42:46.237 22054-22183/com.sample.samplevideoview W/System.err:  at java.util.concurrent.FutureTask.run(FutureTask.java:237) 
07-26 11:42:46.237 22054-22183/com.sample.samplevideoview W/System.err:  at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234) 
07-26 11:42:46.237 22054-22183/com.sample.samplevideoview W/System.err:  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) 
07-26 11:42:46.237 22054-22183/com.sample.samplevideoview W/System.err:  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) 
07-26 11:42:46.237 22054-22183/com.sample.samplevideoview W/System.err:  at java.lang.Thread.run(Thread.java:818) 
07-26 11:42:46.281 22054-22054/com.sample.samplevideoview E/MainActivity: Must implement the interface java.lang.NullPointerException: Attempt to invoke virtual method 'com.sample.samplevideoview.Request com.sample.samplevideoview.VimeoResponse.getRequest()' on a null object reference 

はコードです:

private void getRealUrl(String videoId) 
     { 
      AsyncHttpClient mAsyncHttpClient = new AsyncHttpClient(); 
      HashMap<String, String> params = new HashMap<>(); 
      String url = "https://player.vimeo.com/video/" + videoId + "/config"; 

      mAsyncHttpClient.postWithStringData(MainActivity.this, TAG, 
        url, StringConstants.METHOD_GET, params,false, 
        new AsyncHttpClient.AsyncHttpResponseCallBack() { 
         @Override 
         public void onResponse(String response) { 
          Gson gson = new GsonBuilder().create(); 
          VimeoResponse movie = gson.fromJson(response, VimeoResponse.class); 

         } 
        } 
     ); 
     } 
public class AsyncHttpClient { 

    public interface AsyncHttpResponseCallBack { 
     void onResponse(String response); 
    } 

    private Vector<Object> params; 
    private static final String UTF_ENCODING = "UTF-8"; 

    private static final int CONTEXT_INDEX = 0; 
    private static final int TAG_INDEX = 1; 
    private static final int URL_INDEX = 2; 
    private static final int PARAMS_STRING_INDEX = 3; 
    private static final int RESPONSE_CALLBACK_INDEX = 4; 
    private static final int REQUEST_METHOD_INDEX = 5; 
    private static final int SHOW_PROGRESS_DIALOG_INDEX = 6; 
public void postWithStringData(Context context, String TAG, String url, String method, 
            HashMap<String, String> hashMapParams, boolean showDialog, 
            AsyncHttpResponseCallBack asyncHttpResponseCallBack) { 
     if (Utilities.isConnected(context)) { 
      try { 
       params = new Vector<>(); 
       params.insertElementAt(context, CONTEXT_INDEX); 
       params.insertElementAt(TAG, TAG_INDEX); 
       params.insertElementAt(url, URL_INDEX); 
       params.insertElementAt(getPostDataString(hashMapParams), PARAMS_STRING_INDEX); 
       params.insertElementAt(asyncHttpResponseCallBack, RESPONSE_CALLBACK_INDEX); 
       params.insertElementAt(method, REQUEST_METHOD_INDEX); 
       new AsyncDataRequestHideDialog(context).execute(params); 
      } catch (UnsupportedEncodingException e) { 
       e.printStackTrace(); 
      } 
     } 
    } 
private class AsyncDataRequestHideDialog extends AsyncTask<Vector<Object>, Void, String> { 

     AlertDialog mAlert; 
     String TAG, url; 
     String paramsString; 
     AsyncHttpResponseCallBack asyncHttpResponseCallBack; 
     Context context; 

     String method; 
     public AsyncDataRequestHideDialog(Context context) { 
      // TODO Auto-generated constructor stub 
      this.context = context; 
     } 

     @Override 
     protected String doInBackground(Vector<Object>... params) { 
      Vector<Object> requestParams = params[0]; 
      TAG = (String) requestParams.get(TAG_INDEX); 
      url = (String) requestParams.get(URL_INDEX); 
      paramsString = (String) requestParams.get(PARAMS_STRING_INDEX); 
      asyncHttpResponseCallBack = (AsyncHttpResponseCallBack) requestParams.get(RESPONSE_CALLBACK_INDEX); 
      method = (String) requestParams.get(REQUEST_METHOD_INDEX); 

      String result = ""; 
      URL requestURL; 
      StringBuffer response; 

      try { 
       requestURL = new URL(url); 
       HttpURLConnection conn = (HttpURLConnection) requestURL.openConnection(); 
       conn.setReadTimeout(StringConstants.READ_TIMEOUT); 
       conn.setConnectTimeout(StringConstants.CONNECTION_TIMEOUT); 
       conn.setRequestMethod(method); 
       conn.setDoInput(true); 
       conn.setDoOutput(true); 
       OutputStream os = conn.getOutputStream(); 
       BufferedWriter writer = new BufferedWriter(
         new OutputStreamWriter(os, UTF_ENCODING)); 
       writer.write(paramsString); 
       writer.flush(); 
       writer.close(); 
       os.close(); 
       String line; 
       response = new StringBuffer(); 
       Log.d(TAG,"response code:"+conn.getResponseCode()); 
       BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream())); 
       while ((line = br.readLine()) != null) { 
        response.append(line); 
       } 
       result = response.toString(); 
      } catch (SocketTimeoutException e1) { 
       e1.printStackTrace(); 
      } catch (Exception e) { 
       e.printStackTrace(); 

      } finally { 
       Log.d(TAG, result); 
       return result; 
      } 
     } 

     // Overriding onPreExecute to initialize and show progress dialog 
     @Override 
     protected void onPreExecute() { 
      // TODO Auto-generated method stub 
      super.onPreExecute(); 

     } 
     @Override 
     protected void onPostExecute(String result) { 
      // TODO Auto-generated method stub 
      super.onPostExecute(result); 

      // If result is not null 
      if (result != null) { 
       try { 
        // Making a log just to make sure of data. 
        Log.e(TAG, result); 
        asyncHttpResponseCallBack.onResponse(result); 
       } catch (Exception e) { 
        Log.e(TAG, "Must implement the interface " + e.toString()); 
       } 
      } else { 
       mAlert = Utilities.createAlertDialog(context, "Error", 
         StringConstants.DATA_ERROR); 
      } 
     } 
    } 

私は応答コード405を取得メートルながら?どうした ?モバイルとデスクトップのブラウザで同じURLが返ってきました。

+0

URLの受け入れ方法がGETであること、またはPUSH –

+0

@GeetChoubeyの説明pls – Erum

+0

のどこからGETまたはPUSHを見つけることができるかを確認してください。 – Erum

答えて

0

GET文字列リクエストOutputStreamBufferクラスが例外を引き起こしていたため、コードに問題があるようです。この簡単なコードを試してみてください。私の側でうまく動作します。

@Override 
      protected String doInBackground(Vector<Object>... params) { 

       String result = ""; 
       url = "https://player.vimeo.com/video/136004191/config"; 

       try { 

        URL obj = new URL(url); 

        HttpURLConnection con = (HttpURLConnection) obj.openConnection(); 

        // optional default is GET 
        con.setRequestMethod("GET"); 
        BufferedReader in = new BufferedReader(
          new InputStreamReader(con.getInputStream())); 
        String inputLine; 
        StringBuffer response = new StringBuffer(); 

        while ((inputLine = in.readLine()) != null) { 
         response.append(inputLine); 
        } 
        in.close(); 

        //print result 
        System.out.println(response.toString()); 

        result = response.toString(); 
       } catch (SocketTimeoutException e1) { 
        e1.printStackTrace(); 
       } catch (Exception e) { 
        e.printStackTrace(); 

       } finally { 
        Log.d(TAG, result); 
        return result; 
       } 
      } 
1

Vimeo APIとの通信には、vimeo-networking Java/Androidライブラリを使用することを強くおすすめします。

ライブラリーはネットワーキングロジックをすべて処理します(したがって、HttpURLConnection定型句は必要ありません)。また、URIでビデオを取得するための呼び出しも提供されます。

Here is how to request a single video

String uri = ...;// the video uri; if you have a Video, this is video.uri 
VimeoClient.getInstance().fetchNetworkContent(uri, new ModelCallback<Video>(Video.class) { 
    @Override 
    public void success(Video video) { 
      // use the video 
    } 

    @Override 
    public void failure(VimeoError error) { 
      // voice the error 
    } 
}); 

あなたがビデオを所有している場合次に、あなたは右のライブラリでVideoオブジェクトのオフにしたい任意の情報にアクセスすることができます:それは本質的に似ています。 video.filesのような情報は、VideoFileを返し、あなたが望むリンクにアクセスすることができます。

+0

あなたがビデオを所有している場合は、私自身のアカウントvimeoとdntには、セットアップ.Moreover私はちょうど私のAPIレスポンスから実際のURLを取得していないので、独自のSDKを使用してvimeoのビデオを再生する必要がありますので、YouTube、dailymotion、vimeoですビデオリンクがあります – Erum

+0

APIを使用して、あなたがビデオをアップロードした人(PROアカウントを持つ人)の場合は、「ビデオ」のオブジェクトをクリックします。ウェブ上には、任意の動画を再生できる「埋め込みプレーヤー」がありますが、現在はAndroidに埋め込みプレーヤーオプションはありません。 Webを再生するために 'WebView'を使用してAndroid上にプレーヤーを取得する方法については、[このリンク](http://stackoverflow.com/questions/9030524/auto-playing-vimeo-videos-in-android-webview)を参照してください埋め込み型プレーヤー。 –

関連する問題