1

PHPスクリプトを呼び出すための以下のコードを取得しました。何らかの理由で、接続が成功したと表示されますが、メールを受信して​​いないため、実際にはスクリプトを呼び出しませんでした:-(

NSURLConnectionDelegate メソッドは呼び出されません。

iPhone 5.x デバイスとシミュレーターでのテスト。

提案/アイデアはありますか?どうもありがとうございました!

NSString* url = [NSString stringWithFormat:@"http://www.lenniedevilliers.net/mail.php?subject=%@&to=%@&body=%@", subjectLine, toAddress, emailBody ];

NSLog(@"web service URL: %@", url);

NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString: url] cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0];
    connection = [[NSURLConnection alloc] initWithRequest: request delegate:self];
NSLog(@"connection: %@", [connection debugDescription]);
if (connection) {
    NSLog(@"Connection succeeded");
} else {
    NSLog(@"Connection failed");
}
4

3 に答える 3

2
NSString* url = [NSString stringWithFormat:@"http://www.lenniedevilliers.net/mail.php?subject=%@&to=%@&body=%@", subjectLine, toAddress, emailBody ];

NSLog(@"web service URL: %@", url);

//add the following or something like
[url setString:[url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; 

NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString: url] cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0];

//modify the following    
connection = [[NSURLConnection alloc] initWithRequest: request delegate:self startImmediately:YES]; 
NSLog(@"connection: %@", [connection debugDescription]);
if (connection) {
    NSLog(@"Connection succeeded");
} else {
    NSLog(@"Connection failed");
}
于 2012-07-12T22:02:46.243 に答える
0

あなたの電子メール本文に、URL 経由で送信するのが安全ではないコンテンツが含まれていることは間違いありません。

NSString* url = [NSString stringWithFormat:@"http://www.lenniedevilliers.net/mail.php?subject=%@&to=%@&body=%@", subjectLine, toAddress, emailBody ];

メール本文に&が含まれていると、コードが壊れてしまいます。メッセージ本文をエスケープするか、URL を介して渡すのではなく、要求本文を介して送信する必要があります。間違っているかもしれませんが、きっとその通りです。あなたのコードは問題ないようです、私はそのデータに賭けます;)

于 2012-07-12T17:39:27.030 に答える
0

NSURLConnection に特定のデリゲート関数を使用していますか?

- (void)connection:(NSURLConnection*)connection didReceiveResponse:(NSURLResponse *)response
{
    NSLog(@"Did Receive Response %@", response);
    responseData = [[NSMutableData alloc]init];
}
- (void)connection:(NSURLConnection*)connection didReceiveData:(NSData*)data
{
    //NSLog(@"Did Receive Data %@", data);
    [responseData appendData:data];
}
- (void)connection:(NSURLConnection*)connection didFailWithError:(NSError*)error
{
    NSLog(@"Did Fail");
}
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
    NSLog(@"Did Finish");
    // Do something with responseData
}
于 2012-07-12T21:39:46.767 に答える