Я пытался отправить HTTP-запрос с Android с помощью фрагментов кодов, которые я нашел в SO, но у меня возникли две проблемы. Во-первых, как я могу поместить заголовок в свой HTTP-запрос. Во-вторых, когда я пытаюсь выполнить его (httpclient.execute), я получаю следующую ошибку. Я уже пробовал URL с расширенным клиентом отдыха и получил действительный ответ.Ошибка при отправке запроса HTTP-запроса от android
Вот запрос Преуспевающий
POST /api/v1/login/ HTTP/1.1
HOST: api.example.com
user-agent: Example
content-type: application/json
content-length: 47
{"username":"test", "password":"123456"}
Вот мой код.
String restUrl="https://api.example.com/api/v1/login/";
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(restUrl);
try {
// Add your data
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
nameValuePairs.add(new BasicNameValuePair("username", mJidView.getText().toString()));
nameValuePairs.add(new BasicNameValuePair("password",mPasswordView.getText().toString()));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
// Execute HTTP Post Request
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
Я получаю ошибку в httpclient.execute (HttpPost) Вот дополнительный LogCat.
at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1303)
at java.net.Inet6AddressImpl.lookupHostByName(Inet6AddressImpl.java:86)
at java.net.Inet6AddressImpl.lookupAllHostAddr(Inet6AddressImpl.java:74)
at java.net.InetAddress.getAllByName(InetAddress.java:752)
at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:142)
at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:169)
at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:124)
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:366)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:560)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:492)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:470)
Я также посмотрю на это, но вы можете определить проблему здесь. В SO есть другие люди, которые сделали это так, но моя программа продолжает давать эту ошибку – Prethia
, вероятно, потому, что Google устарел HTTP-запрос в android. см. эту ссылку, чтобы лучше понять [link] (http://stackoverflow.com/questions/29294479/android-deprecated-apache-module-httpclient-httpresponse-etc) –
залп кажется хорошим, я поддерживаю ваш ответ – Prethia