2012-07-24 2 views
4

Мне нужно сделать петиции против https-сервера и загрузить данные, которые сервер отправляет обратно (текст, видеофайлы или файлы изображений) внутри моего приложения для Android.Wget или аналогичный для Android

Он отлично работает в терминале suse Linux и wget или curl. Запрос имеет такую ​​структуру:

wget --post-data "token=xxxx&option1=1&option2=4&File=video" https://api.serverx.com/ --no-check-certificate 

Мой вопрос, если есть какие-либо Wget или аналогичный, работающий в Android, или как я могу сделать такого рода петиций по-другому.

Я прочитал о реализации wget в NDK, но я хотел бы узнать ваш опыт или рекомендации. Благодаря

Решение

Использование NDK в порт Wget был слишком сложным. После некоторых исследований я нашел решение, использующее DefaultHttpClient, и добавив несколько классов, чтобы избежать проверки сертификатов. Я следую this article

SchemeRegistry schemeRegistry = new SchemeRegistry(); 
    schemeRegistry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80)); 
    schemeRegistry.register(new Scheme("https", new EasySSLSocketFactory(), 443)); 

    HttpParams params = new BasicHttpParams(); 
    params.setParameter(ConnManagerPNames.MAX_TOTAL_CONNECTIONS, 30); 
    params.setParameter(ConnManagerPNames.MAX_CONNECTIONS_PER_ROUTE, new ConnPerRouteBean(30)); 
    params.setParameter(HttpProtocolParams.USE_EXPECT_CONTINUE, false); 
    HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1); 

    ClientConnectionManager cm = new SingleClientConnManager(params, schemeRegistry); 
    DefaultHttpClient httpClient = new DefaultHttpClient(cm, params); 
+1

Вот страница, имеет wget для android http://hoffman-andrews.com/android/wget/ есть также несколько проектов github, которые портировали wget на android. –

ответ

4

Использование Wget или NDK потому что это плохая идея: перейти непосредственно java и использовать HttpClient для изготовления пост запрос: пример можно найти here.

Ответ будет содержать ваши данные, готовые для сохранения в файл.

Кроме того, вы можете поместить его в задаче асинхронной, мониторинг прогресса: Разветвляющийся внешний процесс, как Curl НУ Wget должны быть, как последний шанс (что общение с сервером явно не)

+0

Я посмотрю на это решение. Также я стараюсь с ** HttpsURLConnection ** – jbc25

Смежные вопросы