За последние два часа я пытался сделать запрос POST на эту страницу http://www.halebop.se/butik/byt_behall_nummer/ и попытался отправить numberToPort. Однако я получаю кучу файлов cookie, а 302 временно возвращается.HTTP POST запрос на Android
Все, что я хочу сделать, это отправить запрос POST с номером и вернуть последнюю страницу. В iOS я делаю это с помощью ASIHTTPRequest, который обрабатывает перенаправление и файлы cookie.
IOS код:
NSString *halebopURLString = @"http://www.halebop.se/kontantkort/byt_behall_nummer/#";
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:[NSURL URLWithString:halebopURLString]];
[request setPostValue:halebopNumber forKey:@"numberToPort"];
[request setPostValue:@"continue" forKey:@"action"];
[request setPostValue:@"submit" forKey:@"submit"];
[request startSynchronous];
Как я это сделать на Android?
В качестве альтернативы, решение PHP приемлемо.
Редактировать: Пробовал это, он не дает выхода и никаких исключений. У меня есть разрешение на интернет. Ожидаемый результат: отправьте POST, получите 302 и файлы cookie, отправьте файлы cookie на URL от 302 и получите HTML обратно (проверено с помощью FireBug), но я ничего не получаю.
try {
InputStream myInputStream =null;
URL url;
url = new URL("http://www.halebop.se/kontantkort/byt_behall_nummer/#");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setDoOutput(true);
conn.setInstanceFollowRedirects(true);
conn.setRequestMethod("POST");
OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
wr.write("numberToPort="+n+"&action=continue&submit=submit");
wr.flush();
myInputStream = conn.getInputStream();
wr.close();
BufferedReader rd = new BufferedReader(new InputStreamReader(myInputStream), 4096);
String line;
StringBuilder sbResult = new StringBuilder();
while ((line = rd.readLine()) != null) {
sbResult.append(line);
Log.d(TAG, "Line "+line);
}
rd.close();
String contentOfMyInputStream = sbResult.toString();
Log.d(TAG, "Output "+contentOfMyInputStream);
} catch (Exception e) {
Log.d(TAG,e.getMessage());
}
Как насчет Android код, который вы в настоящее время пытается сделать это с? –
Было слишком грязно, его первое приложение для Android. Будет ли сообщение, если я не смогу получить предложение эмбосса работать. –