#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.