Android Volley MalformedURLException: 无协议
Android Volley MalformedURLException: no protocol
我正在尝试使用 Volley 发送 POST headers 并接收一个 StringRequest 但我收到一个 RuntimeException 由以下原因引起:java.net.MalformedURLException:没有协议,但我有一个协议.
我发送了正确的 cookie 和令牌
这是我的代码:
HttpClient httpClient = new DefaultHttpClient();
httpPost = new HttpPost("http://ipServer:portServer/xxx/products.json?place_id=1");
httpPost.addHeader("Content-type", "application/json");
httpPost.addHeader("cookie", cookieTmp);
httpPost.addHeader("X-CSRF-Token", tokenTmp);
StringRequest request = new StringRequest(Request.Method.GET, String.valueOf(httpPost),
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.i("VOLLEY", response);
startActivity(new Intent(getApplicationContext(),
MainActivity.class));
LoginActivity.this.finish();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
L.m("not response");
handleVolleyError(error);
我遇到了这个异常:
E/Volley: [1070] NetworkDispatcher.run: Unhandled exception java.lang.RuntimeException: Bad URL org.apache.http.client.methods.HttpPost@c9461c0
java.lang.RuntimeException: Bad URL org.apache.http.client.methods.HttpPost@c9461c0
at com.android.volley.toolbox.BasicNetwork.performRequest(BasicNetwork.java:151)
at com.android.volley.NetworkDispatcher.run(NetworkDispatcher.java:114)
Caused by: java.net.MalformedURLException: no protocol: org.apache.http.client.methods.HttpPost@c9461c0
at java.net.URL.<init>(URL.java:589)
at java.net.URL.<init>(URL.java:486)
at java.net.URL.<init>(URL.java:435)
at com.android.volley.toolbox.HurlStack.performRequest(HurlStack.java:102)
at com.android.volley.toolbox.BasicNetwork.performRequest(BasicNetwork.java:97)
at com.android.volley.NetworkDispatcher.run(NetworkDispatcher.java:114)
我在 Postman 中执行的测试工作正常。
关于可能导致此问题的任何想法?
在编码之间您使用了两种不同的代码,例如 "get" 和 "add"。
请保持一致。
先用这个试试:
httpPost.addHeader("Content-type", "application/json");
httpPost.addHeader("cookie", cookieTmp);
httpPost.addHeader("X-CSRF-Token", tokenTmp);
然后是:
httpPost.setHeader("Content-type", "application/json");
httpPost.setHeader("cookie", cookieTmp);
httpPost.setHeader("X-CSRF-Token", tokenTmp);
已编辑
我正在尝试使用 Volley 发送 POST headers 并接收一个 StringRequest 但我收到一个 RuntimeException 由以下原因引起:java.net.MalformedURLException:没有协议,但我有一个协议.
我发送了正确的 cookie 和令牌
这是我的代码:
HttpClient httpClient = new DefaultHttpClient();
httpPost = new HttpPost("http://ipServer:portServer/xxx/products.json?place_id=1");
httpPost.addHeader("Content-type", "application/json");
httpPost.addHeader("cookie", cookieTmp);
httpPost.addHeader("X-CSRF-Token", tokenTmp);
StringRequest request = new StringRequest(Request.Method.GET, String.valueOf(httpPost),
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.i("VOLLEY", response);
startActivity(new Intent(getApplicationContext(),
MainActivity.class));
LoginActivity.this.finish();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
L.m("not response");
handleVolleyError(error);
我遇到了这个异常:
E/Volley: [1070] NetworkDispatcher.run: Unhandled exception java.lang.RuntimeException: Bad URL org.apache.http.client.methods.HttpPost@c9461c0
java.lang.RuntimeException: Bad URL org.apache.http.client.methods.HttpPost@c9461c0
at com.android.volley.toolbox.BasicNetwork.performRequest(BasicNetwork.java:151)
at com.android.volley.NetworkDispatcher.run(NetworkDispatcher.java:114)
Caused by: java.net.MalformedURLException: no protocol: org.apache.http.client.methods.HttpPost@c9461c0
at java.net.URL.<init>(URL.java:589)
at java.net.URL.<init>(URL.java:486)
at java.net.URL.<init>(URL.java:435)
at com.android.volley.toolbox.HurlStack.performRequest(HurlStack.java:102)
at com.android.volley.toolbox.BasicNetwork.performRequest(BasicNetwork.java:97)
at com.android.volley.NetworkDispatcher.run(NetworkDispatcher.java:114)
我在 Postman 中执行的测试工作正常。 关于可能导致此问题的任何想法?
在编码之间您使用了两种不同的代码,例如 "get" 和 "add"。
请保持一致。
先用这个试试:
httpPost.addHeader("Content-type", "application/json");
httpPost.addHeader("cookie", cookieTmp);
httpPost.addHeader("X-CSRF-Token", tokenTmp);
然后是:
httpPost.setHeader("Content-type", "application/json");
httpPost.setHeader("cookie", cookieTmp);
httpPost.setHeader("X-CSRF-Token", tokenTmp);