package com.weikou.beibeivideo.util;
|
|
import java.util.Map;
|
import java.util.Map.Entry;
|
|
import org.apache.http.Header;
|
import org.json.JSONException;
|
import org.json.JSONObject;
|
|
import android.content.Context;
|
import android.os.AsyncTask;
|
import android.text.TextUtils;
|
|
import com.google.gson.Gson;
|
import com.google.gson.JsonSyntaxException;
|
import com.google.gson.reflect.TypeToken;
|
import com.loopj.android.http.SyncHttpClient;
|
import com.loopj.android.http.TextHttpResponseHandler;
|
import com.weikou.beibeivideo.BasicTextHttpResponseHandler;
|
import com.weikou.beibeivideo.BeibeiVideoAPI;
|
|
public class GetRealPathTask2 extends AsyncTask<String, Long, String[]> {
|
|
private Context mContext;
|
|
private String path;
|
|
private String userAgent;
|
|
private String leTvDada;
|
|
public GetRealPathTask2(Context mContext) {
|
super();
|
this.mContext = mContext;
|
}
|
|
public Context getContext() {
|
return mContext;
|
}
|
|
@Override
|
protected String[] doInBackground(String... params) {
|
String uid = mContext
|
.getSharedPreferences("user", Context.MODE_PRIVATE).getString(
|
"uid", "");
|
BeibeiVideoAPI.getThirdVideoRequest(mContext, uid, params[0], path, "",
|
"", new BasicTextHttpResponseHandler() {
|
@Override
|
public void onSuccessPerfect(int statusCode,
|
Header[] headers, JSONObject jsonObject)
|
throws Exception {
|
if (jsonObject.getBoolean("IsPost")) {
|
getLeTvDada(jsonObject);
|
}
|
}
|
});
|
|
if (!TextUtils.isEmpty(leTvDada)) {
|
BeibeiVideoAPI.parseVideoUrl(mContext, uid, "", params[0],
|
leTvDada, new BasicTextHttpResponseHandler() {
|
|
@Override
|
public void onSuccessPerfect(int statusCode,
|
Header[] headers, JSONObject jsonObject)
|
throws Exception {
|
if (jsonObject.getBoolean("IsPost")) {
|
path = jsonObject.getJSONObject("Data")
|
.getString("Url");
|
userAgent = jsonObject.optJSONObject("Data")
|
.optString("Play_UserAgent");
|
}
|
}
|
});
|
}
|
|
return new String[] { path, userAgent };
|
}
|
|
private void getLeTvDada(JSONObject jsonObject) throws JsonSyntaxException,
|
JSONException {
|
SyncHttpClient syncHttpClient = new SyncHttpClient();
|
Map<String, String> headersMap = new Gson().fromJson(jsonObject
|
.getJSONObject("Data").getJSONObject("Header").toString(),
|
new TypeToken<Map<String, String>>() {
|
}.getType());
|
for (Entry<String, String> entry : headersMap.entrySet()) {
|
syncHttpClient.addHeader(entry.getKey(), entry.getValue());
|
}
|
syncHttpClient.setURLEncodingEnabled(false);
|
syncHttpClient.get(mContext, jsonObject.getJSONObject("Data")
|
.getString("Url"), new TextHttpResponseHandler() {
|
|
@Override
|
public void onSuccess(int statusCode, Header[] headers,
|
String responseString) {
|
leTvDada = responseString;
|
}
|
|
@Override
|
public void onFailure(int statusCode, Header[] headers,
|
String responseString, Throwable throwable) {
|
}
|
});
|
}
|
}
|