Android httpclient, вызывающий веб-службу restfull

#android #httpclient #webservice-client

#Android #httpclient #веб-сервис-клиент

Вопрос:

согласно следующему URL-адресу, я создал requesthelper для вызова веб-службы restfull (.Net). http://as400samplecode.blogspot.com/2011/09/android-asynctask-httpclient-with.html

каждый раз, когда я вызываю его с устройства Android, он выдает ошибку. в одной из тем в stackoverflow я предлагаю добавить символ ‘/’ в конце URL-адреса. Вы можете найти мои форматы URL и указанные ошибки, как указано ниже.

http://domain.com/default.svc/start/4ef8e420-e6a2-49f5-b612-c0b2dced0920/

в веб-браузере он возвращает «Конечная точка не найдена». из журнала Android :

 10-03 18:02:07.373: WARN/HTTP1:(3983): Not Found
10-03 18:02:07.383: WARN/HTTP3:(3983): java.io.IOException: Not Found
10-03 18:02:07.383: WARN/HTTP3:(3983):     at requestHelper.doInBackground(requestHelper.java:84)
10-03 18:02:07.383: WARN/HTTP3:(3983):     at requestHelper.doInBackground(requestHelper.java:1)
10-03 18:02:07.383: WARN/HTTP3:(3983):     at android.os.AsyncTask$2.call(AsyncTask.java:185)
10-03 18:02:07.383: WARN/HTTP3:(3983):     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
10-03 18:02:07.383: WARN/HTTP3:(3983):     at java.util.concurrent.FutureTask.run(FutureTask.java:137)
10-03 18:02:07.383: WARN/HTTP3:(3983):     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068)
10-03 18:02:07.383: WARN/HTTP3:(3983):     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:561)
10-03 18:02:07.383: WARN/HTTP3:(3983):     at java.lang.Thread.run(Thread.java:1096)
  

http://domain.com/default.svc/start/4ef8e420-e6a2-49f5-b612-c0b2dced0920

в веб-браузере он возвращает JSONObject, как я и хотел. из журнала Android :

 10-03 18:03:41.683: WARN/HTTP1:(4023): Method Not Allowed
10-03 18:03:41.683: WARN/HTTP3:(4023): java.io.IOException: Method Not Allowed
10-03 18:03:41.683: WARN/HTTP3:(4023):     at requestHelper.doInBackground(requestHelper.java:84)
10-03 18:03:41.683: WARN/HTTP3:(4023):     at requestHelper.doInBackground(requestHelper.java:1)
10-03 18:03:41.683: WARN/HTTP3:(4023):     at android.os.AsyncTask$2.call(AsyncTask.java:185)
10-03 18:03:41.683: WARN/HTTP3:(4023):     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
10-03 18:03:41.683: WARN/HTTP3:(4023):     at java.util.concurrent.FutureTask.run(FutureTask.java:137)
10-03 18:03:41.683: WARN/HTTP3:(4023):     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068)
10-03 18:03:41.683: WARN/HTTP3:(4023):     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:561)
10-03 18:03:41.683: WARN/HTTP3:(4023):     at java.lang.Thread.run(Thread.java:1096)
  

Комментарии:

1. Наиболее очевидно, есть ли у вашего приложения разрешение на доступ в ИНТЕРНЕТ? Пожалуйста, отправьте некоторый код из requestHelper.

2. да, у него есть разрешение, я нашел решение из другой темы stacoverflow. Вместо этого я использовал HttpPost, для этого типа запросов должен использоваться HttpGet.