過去兩個小時,我一直在嘗試向此頁面發出POST請求http://www.halebop.se/butik/byt_behall_nummer/並試圖發送numberToPort。不過,我得到了一堆餅乾和一個302暫時移回。Android上的HTTP POST請求
我想要做的就是發送帶有號碼的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從302發送到URL,並返回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應用程序。如果我無法得到emboss的建議,將會發布。 –