Files
expert-app/app/src/main/java/cn/shangyu/gdxzExpert/utils/HttpMD5SendInfoUtil.java
T

459 lines
15 KiB
Java

package cn.shangyu.gdxzExpert.utils;
import static cn.shangyu.gdxzExpert.utils.UIUtils.getContext;
import android.app.Activity;
import android.content.Context;
import android.util.Log;
import android.view.Gravity;
import android.view.View;
import android.widget.TextView;
import com.google.gson.Gson;
import com.hjq.window.EasyWindow;
import com.lidroid.xutils.exception.HttpException;
import com.lidroid.xutils.http.ResponseInfo;
import com.lidroid.xutils.http.callback.RequestCallBack;
import com.lidroid.xutils.http.client.HttpRequest.HttpMethod;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.HashMap;
import java.util.Map;
import cn.shangyu.gdxzExpert.R;
import cn.shangyu.gdxzExpert.bean.TimestampBean;
import cn.shangyu.gdxzExpert.http.HttpHelper;
import cn.shangyu.gdxzExpert.http.OnCallBackFromNet;
import cn.shangyu.gdxzExpert.netease.config.LogoutHelper;
/**
* @author 作者 wcx
* @version 创建时间:2018-7-11 上午11:22:00
* 类说明
*/
public class HttpMD5SendInfoUtil {
/**
* 签到
* */
public static void sendJsonPostParamtoNetSignMD5(final String postUrl,final Map<String, String> param,Context mContext) {
HttpHelper.loadData(HttpMethod.GET, Url.getTimestamp,null, new RequestCallBack<String>() {
@Override
public void onSuccess(ResponseInfo<String> info) {
// SharePrefUtil.saveString(mActivity,
// Url.getExpertroll,
// info.result);
String uuid = SharePrefUtil.getString(getContext(), Constant.uuid, "");
param.put("user_uuid", uuid);
TimestampBean bean = GsonTools.fromGsonToBean(info.result, TimestampBean.class);
param.put("timestamp", bean.getTimestamp());
param.put("client_type", "A");
param.put("version", UpdateVersionUtils.getVersionName());
new Thread() {
public void run() {
String encoding = "UTF-8";
Gson gson = new Gson();
String params = gson.toJson(param);
byte[] data;
try {
String sign = SignUtil.getSign(param);
data = params.getBytes(encoding);
URL url = new URL(postUrl);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setDoOutput(true);
conn.setRequestProperty("Content-Type","application/json");
conn.setRequestProperty("sign",sign);
conn.setRequestProperty("Content-Length",String.valueOf(data.length));
conn.setConnectTimeout(5 * 1000);
OutputStream outStream = conn.getOutputStream();
outStream.write(data);
outStream.flush();
outStream.close();
int ssss=conn.getResponseCode() ;
if (conn.getResponseCode() == 200) {
InputStream inStream = conn.getInputStream();
String result = new String(StreamTool.readInputStream(inStream), "UTF-8");
String string = new String(result);
if (UIUtils.interceptCode38000(getContext(), string)) {
return;
}
JSONObject jsonObject = new JSONObject(string);
String optString = jsonObject.optString("code");
String message = jsonObject.optString("message");
if ("200".equals(optString)) {
Constant.isRefreshpoint = true;//个人中心界面刷新
ToastUtil.showMessage(message);
}
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
// mShowDialog.dismiss();
// closeProgressDialog();
} finally {
// if (!top_right_text.isClickable()) {
// top_right_text.setClickable(true);
// }
}
}
}.start();
// Log.i("TAG", "result = "+info.result);
}
@Override
public void onFailure(HttpException arg0, String arg1) {
// ToastUtil.showToast("请求失败,请重试");
}
});
}
/**
*
* 无需结果请求,1.指南下载数量 2.增加视频阅读数量
* */
public static void sendJsonPostParamNoResultMD5(final String postUrl,final Map<String, String> param) {
HttpHelper.loadData(HttpMethod.GET, Url.getTimestamp,null, new RequestCallBack<String>() {
@Override
public void onSuccess(ResponseInfo<String> info) {
// SharePrefUtil.saveString(mActivity,
// Url.getExpertroll,
// info.result);
String uuid = SharePrefUtil.getString(getContext(), Constant.uuid, "");
if(StringUtil.isEmpty(uuid))
{
uuid= LogoutHelper.addUMTokenuuid;
}
if(CommonUtil.BigModule())
{
param.put("app_type", "1");
}
param.put("user_uuid", uuid);
TimestampBean bean = GsonTools.fromGsonToBean(info.result, TimestampBean.class);
param.put("timestamp", bean.getTimestamp());
param.put("client_type", "A");
param.put("version", UpdateVersionUtils.getVersionName());
new Thread() {
public void run() {
String encoding = "UTF-8";
Gson gson = new Gson();
String params = gson.toJson(param);
byte[] data;
try {
String sign = SignUtil.getSign(param);
LogUtil.i("params = "+params.toString());
data = params.getBytes(encoding);
URL url = new URL(postUrl);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setDoOutput(true);
conn.setRequestProperty("Content-Type","application/json");
conn.setRequestProperty("sign",sign);
conn.setRequestProperty("Content-Length",String.valueOf(data.length));
conn.setConnectTimeout(5 * 1000);
OutputStream outStream = conn.getOutputStream();
outStream.write(data);
outStream.flush();
outStream.close();
int ssss=conn.getResponseCode() ;
if (ssss == 200) {
InputStream inStream = conn.getInputStream();
String result = new String(StreamTool.readInputStream(inStream), "UTF-8");
String string = new String(result);
if (UIUtils.interceptCode38000(getContext(), string)) {
return;
}
LogUtil.i("result = "+result);
JSONObject jsonObject = new JSONObject(string);
String optString = jsonObject.optString("code");
String message = jsonObject.optString("message");
if ("200".equals(optString)) {
LogUtil.e("请求成功");
}
}else {
LogUtil.e("Code = "+ssss);
}
} catch (Exception e) {
LogUtil.e("提交失败,请重试 = "+e.getMessage());
// ToastUtil.showMessage("提交失败,请重试");
// TODO Auto-generated catch block
e.printStackTrace();
// mShowDialog.dismiss();
// closeProgressDialog();
} finally {
// if (!top_right_text.isClickable()) {
// top_right_text.setClickable(true);
// }
}
}
}.start();
// Log.i("TAG", "result = "+info.result);
}
@Override
public void onFailure(HttpException arg0, String arg1) {
// ToastUtil.showToast("请求失败,请重试");
}
});
}
/**
* 获取token
*/
public static void sendJsonPostParamTokenMD5s(final OnCallBackFromNet callBack) {
HttpHelper.loadData(HttpMethod.GET, Url.getTimestamp,null, new RequestCallBack<String>() {
@Override
public void onSuccess(ResponseInfo<String> info) {
Map<String, String> param=new HashMap<>();
String uuid = SharePrefUtil.getString(getContext(), Constant.uuid, "");
if(StringUtil.isEmpty(uuid))
{
uuid= LogoutHelper.addUMTokenuuid;
}
if(CommonUtil.BigModule())
{
param.put("app_type", "1");
}
param.put("user_uuid", uuid);
TimestampBean bean = GsonTools.fromGsonToBean(info.result, TimestampBean.class);
param.put("timestamp", bean.getTimestamp());
param.put("client_type", "A");
param.put("version", UpdateVersionUtils.getVersionName());
new Thread() {
public void run() {
String encoding = "UTF-8";
Gson gson = new Gson();
String params = gson.toJson(param);
byte[] data;
try {
String sign = SignUtil.getSign(param);
LogUtil.i("params = "+params.toString());
data = params.getBytes(encoding);
URL url = new URL(Url.getRealyWorldToken);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setDoOutput(true);
conn.setRequestProperty("Content-Type","application/json");
conn.setRequestProperty("sign",sign);
conn.setRequestProperty("Content-Length",String.valueOf(data.length));
conn.setConnectTimeout(5 * 1000);
OutputStream outStream = conn.getOutputStream();
outStream.write(data);
outStream.flush();
outStream.close();
int ssss=conn.getResponseCode() ;
if (ssss == 200) {
InputStream inStream = conn.getInputStream();
String result = new String(StreamTool.readInputStream(inStream), "UTF-8");
String string = new String(result);
if (UIUtils.interceptCode38000(getContext(), string)) {
return;
}
LogUtil.i("result = "+result);
JSONObject jsonObject = new JSONObject(string);
String optString = jsonObject.optString("code");
String message = jsonObject.optString("message");
// Log.d("okhttp","result = "+result);
Log.d("okhttp","getRealyWorldToken "+result);
if ("200".equals(optString)) {
LogUtil.e("请求成功");
callBack.onCallbackFromThread(string);
}
else
{
callBack.onCallbackFromThread(string);
}
}else {
LogUtil.e("Code = "+ssss);
}
} catch (Exception e) {
LogUtil.e("提交失败,请重试 = "+e.getMessage());
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}.start();
}
@Override
public void onFailure(HttpException arg0, String arg1) {
// ToastUtil.showToast("请求失败,请重试");
}
});
}
public static void sendHttp(final String postUrl, Map<String, String> params, final OnCallBackFromNet callBack) {
HttpHelper.loadData(HttpMethod.GET, Url.getTimestamp,null, new RequestCallBack<String>() {
@Override
public void onSuccess(ResponseInfo<String> info) {
Map<String, String> param=new HashMap<>();
if(params != null){
param.putAll(params);
}
String uuid = SharePrefUtil.getString(getContext(), Constant.uuid, "");
if(StringUtil.isEmpty(uuid))
{
uuid= LogoutHelper.addUMTokenuuid;
}
param.put("user_uuid", uuid);
TimestampBean bean = GsonTools.fromGsonToBean(info.result, TimestampBean.class);
param.put("timestamp", bean.getTimestamp());
param.put("client_type", "A");
param.put("version", UpdateVersionUtils.getVersionName());
new Thread() {
public void run() {
String encoding = "UTF-8";
Gson gson = new Gson();
String params = gson.toJson(param);
byte[] data;
try {
String sign = SignUtil.getSign(param);
LogUtil.i("params = "+params.toString());
data = params.getBytes(encoding);
URL url = new URL(postUrl);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setDoOutput(true);
conn.setRequestProperty("Content-Type","application/json");
conn.setRequestProperty("sign",sign);
conn.setRequestProperty("Content-Length",String.valueOf(data.length));
conn.setConnectTimeout(5 * 1000);
OutputStream outStream = conn.getOutputStream();
outStream.write(data);
outStream.flush();
outStream.close();
int ssss=conn.getResponseCode() ;
if (ssss == 200) {
InputStream inStream = conn.getInputStream();
String result = new String(StreamTool.readInputStream(inStream), "UTF-8");
String string = new String(result);
if (UIUtils.interceptCode38000(getContext(), string)) {
return;
}
LogUtil.i("result = "+result);
JSONObject jsonObject = new JSONObject(string);
String optString = jsonObject.optString("code");
String message = jsonObject.optString("message");
// Log.d("okhttp","result = "+result);
Log.d("okhttp","getRealyWorldToken "+result);
if ("200".equals(optString)) {
LogUtil.e("请求成功");
callBack.onCallbackFromThread(string);
}
else{
callBack.onCallbackFromThread(string);
}
}else {
LogUtil.e("Code = "+ssss);
}
} catch (Exception e) {
LogUtil.e("提交失败,请重试 = "+e.getMessage());
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}.start();
}
@Override
public void onFailure(HttpException arg0, String arg1) {
// ToastUtil.showToast("请求失败,请重试");
}
});
}
public static void sendJsonPostParamTokenMD5(Context context,final OnCallBackFromNet callBack){
EasyWindow.with((Activity) context).setGravity(Gravity.CENTER)
.setContentView(R.layout.float_cent_dialogqs).setBackgroundDimAmount(0.5f)
.setText(R.id.tv_infotitle, "温馨提示")
.setText(R.id.tv_tishi, "查询失败,请点击重试再次查询")
.setVisibility(R.id.r_b, View.VISIBLE)
.setText(android.R.id.message, "确定")
.setOutsideTouchable(false)
.setOnClickListener(android.R.id.message, new EasyWindow.OnClickListener<TextView>() {
@Override
public void onClick(EasyWindow<?> window, TextView view) {
window.cancel();
sendJsonPostParamTokenMD5s(callBack);
}
})
.setOnClickListener(R.id.btn_cancel, new EasyWindow.OnClickListener<TextView>() {
@Override
public void onClick(EasyWindow<?> window, TextView view) {
window.cancel();
}
}).show();
}
public static int hasrealtoken(String s)
{
try {
JSONObject jsonObject=new JSONObject(s);
if("200".equals(jsonObject.optString("code")))
{
return 1;
}
else if(
"30007".equals(jsonObject.optString("code"))||"30012".equals(jsonObject.optString("code")))
{
SharePrefUtil.saveString(getContext(),"x_access_token","");
return 0;
}
else if(
"30014".equals(jsonObject.optString("code"))||"30020".equals(jsonObject.optString("code")))
{
SharePrefUtil.saveString(getContext(),"x_access_token","");
return -1;
}
else
{
return -2;
}
} catch (JSONException e) {
e.printStackTrace();
}
return 1;
}
}