Никак не могу пройти аутентификацию в HTTPS с использованием loopj Asnctask Http library. Как можно это реализовать и что еще мне нужно добавить в свой код.
Мой код:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
etLogin = (EditText) findViewById(R.id.etLogin);
etPassword = (EditText) findViewById(R.id.etPassword);
btnJoin = (Button) findViewById(R.id.btnJoin);
String username = etLogin.getText().toString();
String password = etLogin.getText().toString();
final String url = "https://IpAddress:Port/index.php/api/user";
final AsyncHttpClient client = new AsyncHttpClient();
client.setBasicAuth(username,password, new AuthScope("IP", Port, AuthScope.ANY_REALM));
client.addHeader("Authorization", "Basic " + Base64.encodeToString((username+":"+password).getBytes(),Base64.DEFAULT));
btnJoin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
client.get(url, new AsyncHttpResponseHandler() {
@Override
public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {
Log.d("App", "Connected");
}
@Override
public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) {
Log.d("App","Upload Failed!");
Log.d("App","Error Message: " + error.getMessage());
Log.d("App", "Error Cause: " + error.getCause());
}
});
}
});
В логах пишет:
09-06 05:20:27.471 1254-1254/uz.istv.jsonparsingtestapp D/App: Upload Failed!
09-06 05:20:27.471 1254-1254/uz.istv.jsonparsingtestapp D/App: Error Message: UnknownHostException exception: Unable to resolve host "host5.istv.uz": No address associated with hostname
09-06 05:20:27.471 1254-1254/uz.istv.jsonparsingtestapp D/App: Error Cause: null
09-06 05:20:27.407 1254-1282/uz.istv.jsonparsingtestapp W/System.err: at java.net.InetAddress.lookupHostByName(InetAddress.java:394) 09-06 05:20:27.407 1254-1282/uz.istv.jsonparsingtestapp W/System.err: at java.net.InetAddress.getAllByNameImpl(InetAddress.java:236) 09-06 05:20:27.415 1254-1282/uz.istv.jsonparsingtestapp W/System.err: at java.net.InetAddress.getByName(InetAddress.java:289) 09-06 05:20:27.415 1254-1282/uz.istv.jsonparsingtestapp W/System.err: at cz.msebera.android.httpclient.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:464) 09-06 05:20:27.423 1254-1282/uz.istv.jsonparsingtestapp W/System.err: at cz.msebera.android.httpclient.conn.scheme.SchemeSocketFactoryAdaptor.connectSocket(SchemeSocketFactoryAdaptor.java:65) 09-06 05:20:27.427 1254-1282/uz.istv.jsonparsingtestapp W/System.err: at cz.msebera.android.httpclient.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:177) 09-06 05:20:27.431 1254-1282/uz.istv.jsonparsingtestapp W/System.err: at cz.msebera.android.httpclient.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:145) 09-06 05:20:27.431 1254-1282/uz.istv.jsonparsingtestapp W/System.err: at cz.msebera.android.httpclient.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:131) 09-06 05:20:27.443 1254-1282/uz.istv.jsonparsingtestapp W/System.err: at cz.msebera.android.httpclient.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:611) 09-06 05:20:27.443 1254-1282/uz.istv.jsonparsingtestapp W/System.err: at cz.msebera.android.httpclient.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:446) 09-06 05:20:27.451 1254-1282/uz.istv.jsonparsingtestapp W/System.err: at cz.msebera.android.httpclient.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:860) 09-06 05:20:27.455 1254-1282/uz.istv.jsonparsingtestapp W/System.err: at cz.msebera.android.httpclient.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82) 09-06 05:20:27.455 1254-1282/uz.istv.jsonparsingtestapp W/System.err: at com.loopj.android.http.AsyncHttpRequest.makeRequest(AsyncHttpRequest.java:146) 09-06 05:20:27.455 1254-1282/uz.istv.jsonparsingtestapp W/System.err: at com.loopj.android.http.AsyncHttpRequest.makeRequestWithRetries(AsyncHttpRequest.java:177) 09-06 05:20:27.459 1254-1282/uz.istv.jsonparsingtestapp W/System.err: at com.loopj.android.http.AsyncHttpRequest.run(AsyncHttpRequest.java:106) 09-06 05:20:27.459 1254-1282/uz.istv.jsonparsingtestapp W/System.err: at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:390) 09-06 05:20:27.463 1254-1282/uz.istv.jsonparsingtestapp W/System.err: at java.util.concurrent.FutureTask.run(FutureTask.java:234) 09-06 05:20:27.463 1254-1282/uz.istv.jsonparsingtestapp W/System.err: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080) 09-06 05:20:27.467 1254-1282/uz.istv.jsonparsingtestapp W/System.err: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573) 09-06 05:20:27.467 1254-1282/uz.istv.jsonparsingtestapp W/System.err: at java.lang.Thread.run(Thread.java:856)
-
Unable to resolve host "host.ipadress.uz"Yura Ivanov– Yura Ivanov2016年09月06日 07:52:26 +00:00Commented 6 сент. 2016 в 7:52
1 ответ 1
Проверьте куда стучитесь, явно в никуда, адрес host.ipadress.uz не ресолвится.
И еще замечание
client.setBasicAuth(username,password, new AuthScope("IP", Port, AuthScope.ANY_REALM));
client.addHeader("Authorization", "Basic " + Base64.encodeToString((username+":"+password).getBytes(),Base64.DEFAULT));
Эти две строчки кода взаимноисключающие.
Либо первое средствами клиента, либо второе вручную.
-
Насчет замечание всё понял спасибо, а адрес без проблем открывает на браузере эмулятора...Stive– Stive2016年09月06日 08:36:49 +00:00Commented 6 сент. 2016 в 8:36
-
В манифесте доступ в интернет разрешен?Eugene Krivenja– Eugene Krivenja2016年09月06日 08:39:26 +00:00Commented 6 сент. 2016 в 8:39
-
Да <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>Stive– Stive2016年09月06日 09:18:53 +00:00Commented 6 сент. 2016 в 9:18
-
У меня тоже не ресолвится
ping: cannot resolve host5.istv.uz: Unknown hostEugene Krivenja– Eugene Krivenja2016年09月06日 10:17:03 +00:00Commented 6 сент. 2016 в 10:17