HTTP Basic Authentication в Java с использованием httpclient?JAVA

Программисты JAVA общаются здесь
Anonymous
HTTP Basic Authentication в Java с использованием httpclient?

Сообщение Anonymous »

Я пытаюсь имитировать функциональность этой команды Curl в Java: < /p>

curl --basic --user username:password -d "" http://ipaddress/test/login
< /code>

Я написал следующее, используя Commons httpclient 3.0, но каким -то образом в итоге получил 500 внутренней ошибки сервера < /code> от сервера. Может ли кто -нибудь сказать мне, что я делаю что -то не так? < /P>

public class HttpBasicAuth {

private static final String ENCODING = "UTF-8";

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
try {

HttpClient client = new HttpClient();

client.getState().setCredentials(
new AuthScope("ipaddress", 443, "realm"),
new UsernamePasswordCredentials("test1", "test1")
);

PostMethod post = new PostMethod(
"http://address/test/login");

post.setDoAuthentication( true );

try {
int status = client.executeMethod( post );
System.out.println(status + "\n" + post.getResponseBodyAsString());
} finally {
// release any connection resources used by the method
post.releaseConnection();
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
< /code>

А позже я попробовал Commons httpclient 4.0.1, но все же ошибка: < /p>

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;

public class HttpBasicAuth {

private static final String ENCODING = "UTF-8";

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub

try {
DefaultHttpClient httpclient = new DefaultHttpClient();

httpclient.getCredentialsProvider().setCredentials(
new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT),
new UsernamePasswordCredentials("test1", "test1"));

HttpPost httppost = new HttpPost("http://host:post/test/login");

System.out.println("executing request " + httppost.getRequestLine());
HttpResponse response;
response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();

System.out.println("----------------------------------------");
System.out.println(response.getStatusLine());
if (entity != null) {
System.out.println("Response content length: " + entity.getContentLength());
}
if (entity != null) {
entity.consumeContent();
}

httpclient.getConnectionManager().shutdown();
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}


Подробнее здесь: https://stackoverflow.com/questions/328 ... httpclient

Вернуться в «JAVA»