0
저지를 사용하여 만든 웹 서비스를 호출하려고합니다. 서비스를 콘솔 Java 응용 프로그램에서 호출하여 서비스를 테스트했으며 완벽하게 작동합니다. 안드로이드에서 호출 할 때Android에서 저지 서비스 호출, 알 수 없음 예외
이, 그것은 처음에는 검색, 나에게 android.os.NetworkOnMainThreadException를주고, 내가 AsyncTask를 그를 해결하기 위해 사용해야
다음 코드 충돌
때 "response.getEntity을 발견 (String.class) "는 get 서비스를 호출하는 동안 라고 불리며, getEntity 대신 status (response.getStatus())를 반환하면 정상적으로 작동합니다. 그러나 게시물 요청의 경우에는 똑같은 작업이 이루어지지 않습니다.public class Service extends AsyncTask<String, Void, String>{
과 같이 호출됩니다 :
try {
alert(new Service().execute("lol").get(),view);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ExecutionException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
경고 방법은 바로 경고를 표시 getEntity()는 코드 위의 코드는 클래스의 일부입니다 모두
public String postTest(String arg){
Log.d("Service", "postRegister1");
client = Client.create();
WebResource service=client.resource(getBaseURI());
Log.d("Service", "postRegister2");
Form form = new Form();
form.add("arg", "lol");
int status;
ClientResponse response=null;
try{
response = service.path("test").get(ClientResponse.class);
//post
// response = service.path("post").path("test").post(ClientResponse.class,from);
Log.d("Service", "postRegister3");
status = response.getStatus();
//comment out the following if statement and the code will work perfectly fine, returning the stats
if(status == 200){
return response.getEntity(String.class);
}
return String.valueOf(response.getStatus());
}
catch(ClientHandlerException e){
Log.d("Exception1",e.getMessage()+ " ");
}
catch(UniformInterfaceException e){
Log.d("Exception2",e.getMessage()+ " ");
}
catch(Exception e){
Log.d("Exception3",e.getMessage()+ " ");
}
return "exception";
}
@Override
protected String doInBackground(String... params) {
// TODO Auto-generated method stub
Log.d("doInback", params[0]);
return postTest(params[0]);
}
에 충돌합니다.