Android-эквивалент WebClient в .NET - PullRequest
2 голосов
/ 18 июня 2011

У меня есть довольно простое приложение, которое я написал некоторое время назад в C # NET, и я хотел бы переписать его для платформы Android. Он просто использует API, предоставляемый некоторыми веб-программами, и я могу получить к нему доступ только с помощью WebClient в .NET.

WebClient myClient = new WebClient();

//Prepare a Name/Value Collection to hold the post values
NameValueCollection form = new NameValueCollection();
form.Add("username", "bob");
form.Add("password", GetMD5Hash("mypass"));
form.Add("action", "getusers");

// POST data and read response
Byte[] responseData = myClient.UploadValues("https://mysite.com/api.php", form);
string strResponse = Encoding.ASCII.GetString(responseData);

Я обнаружил WebKit (android.webkit | Android Developers), но, судя по всему, это не кажется подходящим.

У кого-нибудь есть пример кода, как это перенести?

1 Ответ

5 голосов
/ 18 июня 2011

Это может быть эквивалент:

List<NameValuePair> form = new ArrayList<NameValuePair>();
form.add(new BasicNameValuePair("username", "bob");
// etc...

// Post data to the server
HttpPost httppost = new HttpPost("https://mysite.com/api.php");
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

HttpClient httpclient = new DefaultHttpClient();
HttpResponse httpResponse = httpclient.execute(httppost);

Подводя итог, HttpClient может заменить ваш WebClient. Затем вы должны использовать либо HttpPost для публикации данных, либо HttpGet для получения данных. Есть несколько учебных пособий, которые вы можете прочитать, чтобы помочь вам понять, как вы можете использовать эти классы, как этот one .

...