Android POST данные с регистрационными данными для php файла - https

В настоящее время я пытаюсь отправить данные через Android на мой сайт.

php-скрипт, которому я хочу отправить данные, требует логин...

Через браузер я могу использовать данные для входа, как в ссылке, показанной ниже:

https://demo:demo@www.example.com/foo.php?bar=42

Если я попробую сделать то же самое со следующим кодом, ничего не произойдет:

public void postData() {

    // Create a new HttpClient and Post Header
    HttpClient httpclient = new DefaultHttpClient();
    String postUrl = "https://demo:demo@www.example.com/foo.php";
    HttpPost httppost = new HttpPost(postUrl);
    try {

        // Add your data
        List nameValuePairs = new ArrayList(2);
        nameValuePairs.add(new BasicNameValuePair("bar", "42"));
        httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

        // Execute HTTP Post Request
        HttpResponse response = httpclient.execute(httppost);
    } catch (ClientProtocolException e) {
        // TODO Auto-generated catch block
    } catch (IOException e) {
        // TODO Auto-generated catch block
    }
}

Единственная ошибка, которую я получаю / ответ:

"401 - Authorization Required"

К сожалению, я не знаю, как исправить эту ошибку):

Благодаря "Francesco Vadicamo" рабочий код:

public void postData() {
    // Create a new HttpClient and Post Header
    DefaultHttpClient httpclient = new DefaultHttpClient();
    String postUrl = "https://www.example.com/foo.php";


    HttpHost targetHost = new HttpHost("www.example.com", -1, "https");

    httpclient.getCredentialsProvider().setCredentials(
            new AuthScope(targetHost.getHostName(), targetHost.getPort()),
            new UsernamePasswordCredentials("demo", "demo"));
    HttpPost httppost = new HttpPost(postUrl);
    try {

        // Add your data
        List nameValuePairs = new ArrayList(2);
        nameValuePairs.add(new BasicNameValuePair("bar", "42"));
        httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

        // Execute HTTP Post Request
        HttpResponse response = httpclient.execute(targetHost, httppost);
    } catch (ClientProtocolException e) {
        // TODO Auto-generated catch block
    } catch (IOException e) {
        // TODO Auto-generated catch block
    }
}

6
задан endofsource 16 January 2012 в 11:29
поделиться