2012-06-15 38 views
0

我試圖手動創建一個只有用戶的電子郵件地址,主題和電子郵件內容的迷你郵件模塊。它只是爲我的應用程序提供快速客戶支持。我還想隱藏我的電子郵件地址,因爲我只是使用我的Gmail帳戶而不是我公司的電子郵件帳戶。這是爲了確保良好和及時的服務,因爲gmail是衆所周知的。UITextView返回null

問題是,當我使用發送「郵件」內容,以我的PHP服務器:

- (void)sendMail{ 
    NSString *rawStr = [NSString stringWithFormat:@"http://www.somedomain.com/iosuser.php?id=%@__%@__%@__%@",[self getMacAddress],emailAdd.text,subject.text,content.text;]; 

    NSLog(@"%@",rawStr); 
    NSURL *url = [NSURL URLWithString:rawStr]; 
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; 

    NSURLResponse *response; 
    NSError *err; 
    NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&err]; 
    NSLog(@"responseData: %@", responseData); 
} 

的的NSLog爲rawStr做工精細,顯示所有內容的URL,郵件地址,主題和內容:

http://www.somedomain.com/iosuser.php?id=C8:2A:14:22:92:[email protected]__SubjectTest__ContentTestContentTestContentTestContentTestContentTestContentTestContentTestContentTestContentTestContentTest 

但對於NSLog的回報responseDataresponseData: (null)所以沒有什麼實際發送。

EmailAdd和主題是UITextField輸入,而內容來自UITextView輸入。我想知道如果UITextView是問題。 如果這是一個愚蠢的問題,真的很感謝任何指針和道歉。

注:我試圖在我的瀏覽器上使用rawStr的NSLog輸出來手動測試腳本,它的工作原理。

+1

通話結束後,「err」的內容如何? – cobbal

+0

我會檢查一次,當我回來在我的比較,但thanx fer主意...真的很感激它... –

+0

'err'返回'壞URL' –

回答

1

我認爲UITextView不是問題。 因爲您通過NSLog(@"%@",rawStr);獲得正確的日誌。 你沒有從服務器得到正確的迴應,我不是100%確定的。 所以,請檢查下面的鏈接:

-[NSURLRequest sendSynchronousRequest:returningResponse:error:] getting back HTTP headers

error handling with NSURLConnection sendSynchronousRequest

+0

我如何改變同步到異步連接? –

+0

@TeamStar在你的問題中,你還使用「sendSynchronousRequest」,是嗎?只是爲了澄清 –

+0

基於你給我的鏈接,我注意到問題來自sendSynchronousRequest,所以我認爲通過改變它爲異步可能會工作... –

1

我覺得你的問題是在URL中@號(這是不允許的,除非指定我相信用戶名)

你應該在將它們放入網址之前將所有的字符串轉義出來

NSString *rawStr = [NSString stringWithFormat:@"http://www.somedomain.com/iosuser.php?id=%@__%@__%@__%@", 
        [[self getMacAddress] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding], 
        [emailAdd.text stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding], 
        [subject.text stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding], 
        [content.text stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; 
0

它實際上屬於iOS採用的URL語法的基本內容......沒有空格。我用下劃線替換所有空格

rawStr = [rawStr stringByReplacingOccurrencesOfString:@" " withString:@"_"]; 

爲了更好地處理,我從同步更改爲異步。

+0

這個(以及其他最終會出現的錯誤)將通過使用'stringByAddingPercentEscapesUsingEncoding:'來處理,它不會丟失只是將空格轉換爲下劃線而丟失的信息。 – cobbal