2011-04-11 46 views
4

是否可以從方法中的NSURLRequest中檢索POST參數的值;從NSURLRequest中獲取POST參數

-(BOOL) webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType 

是的,這是怎麼做的?

回答

3

這應該是可能的NSURLProtocol的類方法:

+ (id)propertyForKey:(NSString *)key inRequest:(NSURLRequest *)request 

所以,如果你有一個名爲 「地方」 屬性,你可以試試:

[NSURLProtocol propertyForKey:@"place" inRequest:myRequestObject] 

[編輯] 如果你想檢索所有屬性,我認爲你必須使用NSURLRequest中的- (NSData *)HTTPBody ,然後自己解析屬性名稱/值。 urldecode和RegEx應該沒有問題。

+2

是可以獲得所有可用的密鑰? – Thys 2011-04-11 09:59:12

+0

@MrThys:檢查我更新的答案;) – 2011-04-11 10:09:38

+1

即使參數在HTTPBody中,propertyForKey方法也會返回null – Thys 2011-04-11 10:47:25

0
NSURLRequest *request = ... 
    NSError *error = nil; 
    NSDictionary *parameters = [NSJSONSerialization JSONObjectWithData:[request HTTPBody] options:0 error:&error]; 
+0

你檢查了你的最後?它運行良好嗎? – 2016-03-11 07:52:37

+0

是的,這可以工作,但可能有一個邊緣情況下,NSDictionary不返回,所以你可能想檢查返回的類型。 – 2016-03-11 23:05:24

+0

http://stackoverflow.com/questions/35910312/take-post-request-from-webview這是什麼回報類型? – 2016-03-12 09:40:36