2010-05-31 186 views
0

我通過動態創建URL將數據發送到Querystrings中的Web服務器。當我在UIAlertView中查看URl時,它顯示了我正確的一個。從Web服務器獲取響應時出現問題

而當我嘗試使用NSURL代碼獲得響應時,它不響應。 以下是代碼。

NSString *uu = @"http://www.zenhomeenergy.com/ZenIphoneServUpdate.aspx?CustomerID=11&FirstName=Rob&LastName=O'Connell&State=VIC&Street=4 Southey Street Brighton&PostCode=3186&[email protected]&Mobile=04545455454&HomePhone=54545545545&WorkPhone=787878787878&PrimaryResidence=False&HomeOwner=True"; 

NSString *text = [NSString stringWithContentsOfURL:[NSURL URLWithString:uu]]; 

if(text) { 
    if([text isEqualToString:@"Success."]) { 
    textView.text = [textView.text stringByAppendingString:@"Success.\n"]; 
    } else { 
    textView.text = [textView.text stringByAppendingString:@"Failed.\n"]; 
    } 
} 

如果您嘗試將上面的URL放到瀏覽器中,它會顯示「成功」。 但上面的代碼不起作用。

或者如果你有另一種更簡單的發送數據的方式,請告訴我。

請幫忙。

+0

「不起作用」是什麼意思?你期望會發生什麼? – 2010-05-31 08:13:27

+0

它應該返回「成功」。在代碼預計工作的文本變量中。 – Amarpreet 2010-05-31 08:15:14

回答

1

你可以試試這個:

NSString *text = [NSString stringWithContentsOfURL:[NSURL URLWithString:[uu stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; 

這是可能的一些字符串中的字符,因爲他們是不合法的URL字符搞砸了請求,該功能是爲了解決這個問題,但我已經發現它不過去工作,所以我實際上已經在使用此功能:

- (NSString*)stringByUrlEncoding { 
NSString *result = (NSString *) CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (CFStringRef)self, NULL, CFSTR(":/?#[]@!$&’()*+,;="), kCFStringEncodingUTF8); 
return [result autorelease]; 

}

好運!

+0

Great Mate ....謝謝。 現在工作正常。 歡呼聲。 – Amarpreet 2010-05-31 23:56:34

0

你幾乎肯定要使用+ [NSString的stringWithContentsOfURL:編碼:錯誤:]或+ [NSString的stringWithContentsOfURL:usedEncoding:錯誤:]代替,因爲+ [NSString的stringWithContentsOfURL:]已廢棄的Mac OS X 10.4版的。