2010-10-27 44 views
0

我只是形成在我的OBJ-C代碼,它從我的服務器調用PHP代碼的請求ASIFormDataRequest NULL響應


ASIFormDataRequest *req = [[ASIHTTPRequest alloc] initWithURL:url]; 
[req setPostValue:[NSString stringWithFormat:@"%f",slat] forKey:@"mylat"]; 
[req setPostValue:[NSString stringWithFormat:@"%f",slng] forKey:@"mylng"]; 
[req start]; 
NSLog(@"response -",[req responseString]); 
[req release]; 

我沒有得到在NSLog的響應,但它使用stringWithContentsOfURL運行得非常好,並且我可以在瀏覽器中看到輸出。即使我將ASIFormDataRequest更改爲ASIHTTPRequest並添加了User-Agent,但沒有任何結果。我在不同版本的SDK中也檢查過它,3.0,3.1.2,4.0,4.1。但沒有任何反應

我相信從服務器的響應是好的,

一個更可悲的是,同樣的ASI代碼運行在我家,其具有優良的我的辦公室網絡(AIRTEL寬帶)上,而不是一個BSNL寬帶,希望它不是服務提供商的問題。

沒有任何一個發現這樣的問題..

+0

逐步通過代碼並轉儲變量並添加更多信息,例如錯誤,返回的值等 – Jordan 2010-10-28 11:58:15

回答

0

嘗試...

ASIFormDataRequest *req = [[ASIHTTPRequest alloc] initWithURL:url]; 
[req setPostValue:[NSString stringWithFormat:@"%f",slat] forKey:@"mylat"]; 
[req setPostValue:[NSString stringWithFormat:@"%f",slng] forKey:@"mylng"]; 

[req startSynchronous]; 
    NSError *error = [req error]; 
    if (!error) { 
     NSLog(@"response -",[req responseString]); 
    } 
[req release]; 
+0

感謝喬丹和喬希,我會在家裏測試它,但我不知道它是如何在我的辦公室運行,並且沒有在家裏運行 – 2010-10-28 09:09:44

+0

am僅在這裏使用[req start]辦公室 – 2010-10-28 09:11:08

+0

我試過了,但它不工作....現在,它也不在我的辦公室網絡工作..我不知道爲什麼... – 2010-10-28 10:28:21

1

代替:

[req start] 

嘗試:

[req startSynchronous] 

一般而言,這是罰款要手動撥打-start一個NSOperation對象,但在這種情況下,ASIHTTPRequest明確提供了一個-startSynchronous方法,因此可能有一個很好的理由來使用它。

+0

最後,我得到了答案代理是問題,如果你發現同樣的問題,只需檢查您的網絡設置中的代理服務器,我不知道abt windows,是在MAC上,因此它是一個chekbox使它發生,我使用的代碼(出於安全目的) – 2010-11-01 11:35:55

0

最後,我得到了答案代理是問題,如果你發現相同的問題,只需檢查您的網絡設置中的代理,我不知道abt窗口,我在MAC上,所以它的理由是一個chekbox使它發生和我使用的代碼(出於安全目的)

ASIFormDataRequest *req = [[ASIFormDataRequest alloc] initWithURL:url]; 
[req setDelegate:self]; 
[req startAsynchronous]; 
NSError *error = [req error]; 
if (!error) { 
    NSLog(@"response -",[req responseString]); 
} 
[req release]; 
[url release]; 
- (void)requestFinished:(ASIHTTPRequest *)request 
{ 
// Use when fetching text data 
NSString *responseString = [request responseString]; 
NSLog(@"response %d-%@",[responseString length],responseString); 
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO]; 
} 

- (void)requestFailed:(ASIHTTPRequest *)request 
{ 
NSError *error = [request error]; 
NSLog(@"error - %@\n",error); 
}