私はいくつかの情報(テキストと画像)をサーバースクリプトに送信するiPhoneアプリケーションを作成しています。AFNetworkingファイルのアップロードはPHPスクリプトでは動作しますが、jspスクリプトでは機能しません。
私のPHPスクリプトではうまくいっていますが、私の顧客のjspスクリプト(受信した情報を電子メールアドレスに電子メールで送信します)で何も動作しません...(私は自動返信メールを受信する必要があり、起こらない)。
私は顧客であり、彼らは大きな顧客であり、いくつかのbla blaセキュリティの問題が原因です... スクリプトはオンラインWebフォームで正常に機能し、iOS 4.3のASIHTTPRequestでうまくいきました私はiOS 5 ASIHTTPRequestとAFNetworking原因に移行しています)
本当にありがとうございます!
ここに私のコードは...私のコードは常にNSLog(@ "成功")に達しますが、私は自動応答メールを受信しないので、動作していません!!
AFHTTPClient *client= [AFHTTPClient clientWithBaseURL:[NSURL URLWithString:@"http://my.client.server.com"]];
NSMutableDictionary *parameters = [NSMutableDictionary dictionary];
[parameters setObject:[fieldName text] forKey:@"field01_nome"];
[parameters setObject:[fieldSurname text] forKey:@"field02_cognome"];
NSMutableURLRequest *myRequest = [client multipartFormRequestWithMethod:@"POST" path:@"/Contents/mail/sendToForm.jsp" parameters:parameters constructingBodyWithBlock: ^(id <AFMultipartFormData>formData) {
[formData appendPartWithFileData:myNSDataToSend mimeType:@"image/jpeg" name:@"alleagto"];
}];
AFHTTPRequestOperation *operation = [AFHTTPRequestOperation HTTPRequestOperationWithRequest:myRequest success:^(id object) {
NSLog(@"Success");
} failure:^(NSHTTPURLResponse *response, NSError *error) {
NSLog(@"Fail");
}];
[operation setUploadProgressBlock:^(NSInteger bytesWritten, NSInteger totalBytesWritten, NSInteger totalBytesExpectedToWrite) {
NSLog(@"Sent %d of %d bytes", totalBytesWritten, totalBytesExpectedToWrite);
}];
queue = [[[NSOperationQueue alloc] init] autorelease];
[queue addOperation:operation];
ありがとうございます!
EDITは:(常に動作します)オンラインWebフォームから生成さ
要求::ASIHTTPでのiOS 5.0から生成
POST /Contents/mail/sendToForm.jsp HTTP/1.1
Host: my.client.server.com
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/534.51.22 (KHTML, like Gecko) Version/5.1.1 Safari/534.51.22
Content-Length: 54246
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 */<- added by me for syntax coloring
Origin: http://www.client.server.com
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryLWVo7zrkX3QOybWm
Referer: http://www.client.server.com/form/1/send-the-form.shtml
Accept-Language: it-it
Accept-Encoding: gzip, deflate
Pragma: no-cache
Connection: keep-alive
------WebKitFormBoundaryLWVo7zrkX3QOybWm
Content-Disposition: form-data; name="form_recipient"
4182fd0f318e1d86176a3be7f8c7d83955eb5eca2e1402250e47164caf1984e7
------WebKitFormBoundaryLWVo7zrkX3QOybWm
Content-Disposition: form-data; name="form_subject"
------WebKitFormBoundaryLWVo7zrkX3QOybWm
Content-Disposition: form-data; name="field01_nome"
Gianluca
------WebKitFormBoundaryLWVo7zrkX3QOybWm
Content-Disposition: form-data; name="field02_cognome"
Pisati
------WebKitFormBoundaryLWVo7zrkX3QOybWm
Content-Disposition: form-data; name="field03_indirizzo"
A
------WebKitFormBoundaryLWVo7zrkX3QOybWm
Content-Disposition: form-data; name="field04_provincia"
B
------WebKitFormBoundaryLWVo7zrkX3QOybWm
Content-Disposition: form-data; name="field05_email"
[email protected]
------WebKitFormBoundaryLWVo7zrkX3QOybWm
Content-Disposition: form-data; name="field06_telefono"
333
------WebKitFormBoundaryLWVo7zrkX3QOybWm
Content-Disposition: form-data; name="field07_tipo"
valore2
------WebKitFormBoundaryLWVo7zrkX3QOybWm
Content-Disposition: form-data; name="allegato"; filename="allegato.jpg"
Content-Type: image/jpeg
Here there's the attachment
------WebKitFormBoundaryLWVo7zrkX3QOybWm
Content-Disposition: form-data; name="field09_oggetto"
Test Web
------WebKitFormBoundaryLWVo7zrkX3QOybWm
Content-Disposition: form-data; name="field10_segnalazione"
Send Test Web
------WebKitFormBoundaryLWVo7zrkX3QOybWm--
要求JosephHによって示唆されるように私は、キャプチャした要求を追加しました(作品はありません)AFNetworkingでのiOS 5.0から生成
POST /Contents/mail/sendToForm.jsp HTTP/1.1
Host: my.client.server.com
User-Agent: My App 1.0 (iPhone Simulator; iPhone OS 5.0; en_US)
Content-Length: 153522
Content-Type: multipart/form-data; charset=utf-8; boundary=0xKhTmLbOuNdArY-ABC90FA4-3EE3-42FE-B93A-A698D7BB894D
Accept-Encoding: gzip
Connection: close
--0xKhTmLbOuNdArY-ABC90FA4-3EE3-42FE-B93A-A698D7BB894D
Content-Disposition: form-data; name="field01_nome"
Gianluca
--0xKhTmLbOuNdArY-ABC90FA4-3EE3-42FE-B93A-A698D7BB894D
Content-Disposition: form-data; name="field02_cognome"
Pisati
--0xKhTmLbOuNdArY-ABC90FA4-3EE3-42FE-B93A-A698D7BB894D
Content-Disposition: form-data; name="field03_indirizzo"
A
--0xKhTmLbOuNdArY-ABC90FA4-3EE3-42FE-B93A-A698D7BB894D
Content-Disposition: form-data; name="field04_provincia"
B
--0xKhTmLbOuNdArY-ABC90FA4-3EE3-42FE-B93A-A698D7BB894D
Content-Disposition: form-data; name="field05_email"
[email protected]
--0xKhTmLbOuNdArY-ABC90FA4-3EE3-42FE-B93A-A698D7BB894D
Content-Disposition: form-data; name="field06_telefono"
333
--0xKhTmLbOuNdArY-ABC90FA4-3EE3-42FE-B93A-A698D7BB894D
Content-Disposition: form-data; name="field07_tipo"
valore2
--0xKhTmLbOuNdArY-ABC90FA4-3EE3-42FE-B93A-A698D7BB894D
Content-Disposition: form-data; name="field09_oggetto"
Test iOS 5
--0xKhTmLbOuNdArY-ABC90FA4-3EE3-42FE-B93A-A698D7BB894D
Content-Disposition: form-data; name="field10_segnalazione"
ASIHTTP on iOS 5
--0xKhTmLbOuNdArY-ABC90FA4-3EE3-42FE-B93A-A698D7BB894D
Content-Disposition: form-data; name="form_recipient"
4182fd0f318e1d86176a3be7f8c7d83955eb5eca2e1402250e47164caf1984e7
--0xKhTmLbOuNdArY-ABC90FA4-3EE3-42FE-B93A-A698D7BB894D
Content-Disposition: form-data; name="form_subject"
--0xKhTmLbOuNdArY-ABC90FA4-3EE3-42FE-B93A-A698D7BB894D
Content-Disposition: form-data; name="allegato"; filename="image.jpg"
Content-Type: image/jpeg
Here there's the attachment
--0xKhTmLbOuNdArY-ABC90FA4-3EE3-42FE-B93A-A698D7BB894D--
要求を(...いや、他の回、なぜ私は知らないが、時にはそれが動作します):
POST /Contents/mail/sendToForm.jsp HTTP/1.1
Host: my.client.server.com
User-Agent: com.mycompany.myapp/1.0 (unknown, iPhone OS 5.0, iPhone Simulator, Scale/1.000000)
Content-Length: 153203
Accept: */* */<- added by me for syntax coloring
Accept-Language: en, fr, de, ja, nl, it, es, pt, pt-PT, da, fi, nb, sv, ko, zh-Hans, zh-Hant, ru, pl, tr, uk, ar, hr, cs, el, he, ro, sk, th, id, ms, en-GB, ca, hu, vi, en-us;q=0.8
Accept-Encoding: gzip
Content-Type: multipart/form-data; boundary=Boundary+0xAbCdEfGbOuNdArY
Connection: keep-alive
--Boundary+0xAbCdEfGbOuNdArY
Content-Disposition: form-data; name="form_recipient"
4182fd0f318e1d86176a3be7f8c7d83955eb5eca2e1402250e47164caf1984e7
--Boundary+0xAbCdEfGbOuNdArY
Content-Disposition: form-data; name="field04_provincia"
B
--Boundary+0xAbCdEfGbOuNdArY
Content-Disposition: form-data; name="field05_email"
[email protected]
--Boundary+0xAbCdEfGbOuNdArY
Content-Disposition: form-data; name="field07_tipo"
valore2
--Boundary+0xAbCdEfGbOuNdArY
Content-Disposition: form-data; name="field01_nome"
Gianluca
--Boundary+0xAbCdEfGbOuNdArY
Content-Disposition: form-data; name="field10_segnalazione"
AFNetworking on iOS 5
--Boundary+0xAbCdEfGbOuNdArY
Content-Disposition: form-data; name="field02_cognome"
Pisati
--Boundary+0xAbCdEfGbOuNdArY
Content-Disposition: form-data; name="form_subject"
--Boundary+0xAbCdEfGbOuNdArY
Content-Disposition: form-data; name="field06_telefono"
333
--Boundary+0xAbCdEfGbOuNdArY
Content-Disposition: form-data; name="field09_oggetto"
Test iOS 5
--Boundary+0xAbCdEfGbOuNdArY
Content-Disposition: form-data; name="field03_indirizzo"
A
--Boundary+0xAbCdEfGbOuNdArY
Content-Disposition: form-data; name="allegato"; filename="allegato-342447627.jpeg"
Content-Type: image/jpeg
Here there's the attachment
--Boundary+0xAbCdEfGbOuNdArY--
おかげで動作します..!変更されるのはパラメータの順序だけですが、これが問題になる可能性がありますか?私はそうは思わない... – Janky
それは違う唯一のものだと確信しています - すべてのヘッダーを比較しましたか?それが唯一のものならば、それは確かに問題でなければならない - 私は確かに他の違いがあるでしょう。 – JosephH
OK、3つのキャプチャされたリクエストを追加しました。最初のものはWebフォームからのもので、2つ目はASIHTTPによるものです(iOS 5で動作しない場合があります) 1つはAFNetworkingである – Janky