ClientProtocolException - PullRequest
       2

ClientProtocolException

1 голос
/ 18 августа 2011

Я хочу использовать веб-сервис RESTFul в своем приложении.

PUT /API/Authentication HTTP/1.1 
HOST: $baseuri:port 
Accept: text/xml 
Content-Type: text/xml; 
charset=utf-8 
Content-Length: nnnn 

<?xml version="1.0" encoding="utf-8"?>
<Myapp xmlns="http://schemas.myapp.com/REST/Requests/05172011/SignIn"> 
<SignInRequest>
 <UID>ME</UID> 
 <PWD>BlackPearl</PWD> 
</SignInRequest> 
</Myapp>

Я пытался с некоторым кодом. Но это показывает ClientProtocolException. В чем ошибка в моем коде? Пожалуйста, помогите мне. Спасибо ...

  String auth="myname:mypassword";
  String encoded_auth=Base64.encodeToString(auth.getBytes(),Base64.DEFAULT);
  String auth_header= "Authorization: BASIC "+encoded_auth;

  String xml="<?xml version='1.0' encoding='utf-8'?><Myapp xmlns='http://schemas.myapp.com/REST/Requests/05202011/SignIn'><SignInRequest><UID>ME</UID><PWD>BlackPearl</PWD></SignInRequest></Myapp>";
  int l=xml.length();

  StringEntity e = new StringEntity(xml);
  e.setContentType("text/xml");
  e.setContentEncoding("UTF-8");

  HttpPut objPut = new HttpPut(basruri+"/myApp/API/Authentication");
objPut.setHeader("Content-Type","text/xml;charset=utf-8");
objPut.setHeader("Accept","text/xml");
objPut.setHeader("Host",basruri);
objPut.setHeader("Content-Length",Integer.toString(l));
objPut.setHeader("Authorization",auth_header);
objPut.setEntity(e);    

DefaultHttpClient objClient = new DefaultHttpClient();
ResponseHandler objResponse = new BasicResponseHandler();

HttpResponse s=objClient.execute(objPut);

1 Ответ

3 голосов
/ 07 декабря 2011

Попробуйте удалить заголовки Host и Content-Length, у меня это сработало.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...