Android截取请求字符串返回空onResponse
哎哟,哎哟,哎哟| 为什么为空 服务器端已修复 所有方法都是固定的 为什么为空?类似的代码是workd,但此代码不是workd。所有Android截取请求字符串返回空onResponse,android,android-fragments,android-volley,android-networking,Android,Android Fragments,Android Volley,Android Networking,哎哟,哎哟,哎哟| 为什么为空 服务器端已修复 所有方法都是固定的 为什么为空?类似的代码是workd,但此代码不是workd。所有日志都正常 在帧集对话框中: @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { ViewGroup rootView = (Vi
日志
都正常
在帧集对话框中:
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
ViewGroup rootView = (ViewGroup) inflater.inflate(R.layout.player_artists_dialog, container, false);
getDialog().getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
getDialog().setCancelable(true);
model = this.getArguments().getParcelable("model");
progressBar = (ProgressBar) rootView.findViewById(R.id.progressBar);
listView = (ListView) rootView.findViewById(R.id.listView);
listView.setVisibility(View.INVISIBLE);
progressBar.setVisibility(View.VISIBLE);
StringRequest request = new StringRequest(Request.Method.POST,
".. url ..",
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Toast.makeText(getContext(), response, Toast.LENGTH_LONG).show(); // show null
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError ex) {
}
}) {
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> params = new HashMap<>();
params.put("a", String.valueOf(model.getTr()));
params.put("b", String.valueOf(model.getCat()));
return params;
}
};
RequestQueue queue = VolleySingleton.getInstance().getRequestQueue();
queue.add(request);
return rootView;
}
为什么NULL?????用于将自签名SSL证书导入Android 4.1上的Volley+
Use to import self-signed SSL certificate to Volley on Android 4.1+
It will make volley to Trust all SSL certificates
I hope it will work.
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
ViewGroup rootView = (ViewGroup) inflater.inflate(R.layout.player_artists_dialog, container, false);
getDialog().getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
getDialog().setCancelable(true);
model = this.getArguments().getParcelable("model");
progressBar = (ProgressBar) rootView.findViewById(R.id.progressBar);
listView = (ListView) rootView.findViewById(R.id.listView);
listView.setVisibility(View.INVISIBLE);
progressBar.setVisibility(View.VISIBLE);
//use trustAllCertificates here.
trustAllCertificates();
StringRequest request = new StringRequest(Request.Method.POST,
".. url ..",
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Toast.makeText(getContext(), response, Toast.LENGTH_LONG).show(); // show null
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError ex) {
}
}) {
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> params = new HashMap<>();
params.put("a", String.valueOf(model.getTr()));
params.put("b", String.valueOf(model.getCat()));
return params;
}
};
RequestQueue queue = VolleySingleton.getInstance().getRequestQueue();
queue.add(request);
return rootView;
}
private void trustAllCertificates() {
try {
TrustManager[] trustAllCerts = new TrustManager[] {
new X509TrustManager() {
public X509Certificate[] getAcceptedIssuers() {
X509Certificate[] myTrustedAnchors = new X509Certificate[0];
return myTrustedAnchors;
}
@Override
public void checkClientTrusted(X509Certificate[] certs, String authType) {}
@Override
public void checkServerTrusted(X509Certificate[] certs, String authType) {}
}
};
SSLContext sc = SSLContext.getInstance("SSL");
sc.init(null, trustAllCerts, new SecureRandom());
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
HttpsURLConnection.setDefaultHostnameVerifier(new HostnameVerifier() {
@Override
public boolean verify(String arg0, SSLSession arg1) {
return true;
}
});
} catch (Exception e) {
}
}
信任所有SSL证书将导致截击
我希望它能起作用。
@可空
@凌驾
创建视图时的公共视图(LayoutFlater充气机、@Nullable ViewGroup容器、@Nullable Bundle savedInstanceState){
ViewGroup rootView=(ViewGroup)充气器。充气(R.layout.player\u artists\u对话框,容器,false);
getDialog().getWindow().setBackgroundDrawable(新的ColorDrawable(android.graphics.Color.TRANSPARENT));
getDialog().setCancelable(true);
model=this.getArguments().getParcelable(“模型”);
progressBar=(progressBar)rootView.findviewbyd(R.id.progressBar);
listView=(listView)rootView.findViewById(R.id.listView);
setVisibility(View.INVISIBLE);
progressBar.setVisibility(View.VISIBLE);
//在此处使用trustAllCertificates。
信任证书();
StringRequest=新的StringRequest(request.Method.POST,
“.url…”,
新的Response.Listener(){
@凌驾
公共void onResponse(字符串响应){
Toast.makeText(getContext(),response,Toast.LENGTH_LONG).show();//show null
}
},
新的Response.ErrorListener(){
@凌驾
公共响应(截击错误){
}
}) {
@凌驾
受保护的映射getParams()引发AuthFailureError{
Map params=新的HashMap();
put(“a”,String.valueOf(model.getter());
params.put(“b”,String.valueOf(model.getCat());
返回参数;
}
};
RequestQueue queue=VolleySingleton.getInstance().getRequestQueue();
添加(请求);
返回rootView;
}
私有无效trustAllCertificates(){
试一试{
TrustManager[]trustAllCerts=新的TrustManager[]{
新X509TrustManager(){
公共X509证书[]getAcceptedIssuers(){
X509Certificate[]myTrustedAnchors=新的X509Certificate[0];
返回myTrustedAnchors;
}
@凌驾
public void checkClientTrusted(X509Certificate[]证书,字符串authType){}
@凌驾
public void checkServerTrusted(X509Certificate[]证书,字符串authType){}
}
};
SSLContext sc=SSLContext.getInstance(“SSL”);
sc.init(null,trustAllCerts,new SecureRandom());
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
HttpsURLConnection.setDefaultHostnameVerifier(新的HostnameVerifier(){
@凌驾
公共布尔验证(字符串arg0,SSLSession arg1){
返回true;
}
});
}捕获(例外e){
}
}
用于将自签名SSL证书导入Android 4.1上的Volley+
信任所有SSL证书将导致截击
我希望它能起作用。
@可空
@凌驾
创建视图时的公共视图(LayoutFlater充气机、@Nullable ViewGroup容器、@Nullable Bundle savedInstanceState){
ViewGroup rootView=(ViewGroup)充气器。充气(R.layout.player\u artists\u对话框,容器,false);
getDialog().getWindow().setBackgroundDrawable(新的ColorDrawable(android.graphics.Color.TRANSPARENT));
getDialog().setCancelable(true);
model=this.getArguments().getParcelable(“模型”);
progressBar=(progressBar)rootView.findviewbyd(R.id.progressBar);
listView=(listView)rootView.findViewById(R.id.listView);
setVisibility(View.INVISIBLE);
progressBar.setVisibility(View.VISIBLE);
//在此处使用trustAllCertificates。
信任证书();
StringRequest=新的StringRequest(request.Method.POST,
“.url…”,
新的Response.Listener(){
@凌驾
公共void onResponse(字符串响应){
Toast.makeText(getContext(),response,Toast.LENGTH_LONG).show();//show null
}
},
新的Response.ErrorListener(){
@凌驾
公共响应(截击错误){
}
}) {
@凌驾
受保护的映射getParams()引发AuthFailureError{
Map params=新的HashMap();
put(“a”,String.valueOf(model.getter());
params.put(“b”,String.valueOf(model.getCat());
返回参数;
}
};
RequestQueue queue=VolleySingleton.getInstance().getRequestQueue();
添加(请求);
返回rootView;
}
私有无效trustAllCertificates(){
试一试{
TrustManager[]trustAllCerts=新的TrustManager[]{
新X509TrustManager(){
公共X509证书[]getAcceptedIssuers(){
X509Certificate[]myTrustedAnchors=新的X509Certificate[0];
返回myTrustedAnchors;
}
@凌驾
public void checkClientTrusted(X509Certificate[]证书,字符串authType){}
@凌驾
public void checkServerTrusted(X509Certificate[]证书,字符串authType){}
}
};
SSLContext sc=SSLContext.getInstance(“SSL”);
sc.init(null,trustAllCerts,new SecureRandom());
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSo
String.valueOf(model.getTr()); // 104 is true
String.valueOf(model.getCat()); // 1 is true
Use to import self-signed SSL certificate to Volley on Android 4.1+
It will make volley to Trust all SSL certificates
I hope it will work.
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
ViewGroup rootView = (ViewGroup) inflater.inflate(R.layout.player_artists_dialog, container, false);
getDialog().getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
getDialog().setCancelable(true);
model = this.getArguments().getParcelable("model");
progressBar = (ProgressBar) rootView.findViewById(R.id.progressBar);
listView = (ListView) rootView.findViewById(R.id.listView);
listView.setVisibility(View.INVISIBLE);
progressBar.setVisibility(View.VISIBLE);
//use trustAllCertificates here.
trustAllCertificates();
StringRequest request = new StringRequest(Request.Method.POST,
".. url ..",
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Toast.makeText(getContext(), response, Toast.LENGTH_LONG).show(); // show null
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError ex) {
}
}) {
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> params = new HashMap<>();
params.put("a", String.valueOf(model.getTr()));
params.put("b", String.valueOf(model.getCat()));
return params;
}
};
RequestQueue queue = VolleySingleton.getInstance().getRequestQueue();
queue.add(request);
return rootView;
}
private void trustAllCertificates() {
try {
TrustManager[] trustAllCerts = new TrustManager[] {
new X509TrustManager() {
public X509Certificate[] getAcceptedIssuers() {
X509Certificate[] myTrustedAnchors = new X509Certificate[0];
return myTrustedAnchors;
}
@Override
public void checkClientTrusted(X509Certificate[] certs, String authType) {}
@Override
public void checkServerTrusted(X509Certificate[] certs, String authType) {}
}
};
SSLContext sc = SSLContext.getInstance("SSL");
sc.init(null, trustAllCerts, new SecureRandom());
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
HttpsURLConnection.setDefaultHostnameVerifier(new HostnameVerifier() {
@Override
public boolean verify(String arg0, SSLSession arg1) {
return true;
}
});
} catch (Exception e) {
}
}
use this
String crappyPrefix = "null";
if(result.startsWith(crappyPrefix)){
result = result.substring(crappyPrefix.length(), result.length());
}
JSONObject jo = new JSONObject(result);