2011-07-29 4 views
0

서버에 POST를 작성하는 MacOS 응용 프로그램이 있습니다. POST의 URL을 변경하고 모든 것이 작동하지 않습니다.ASIFormDataRequest에 빈 POST 몸체가 있습니다.

새 URL을 사용할 때 POST BODY가 비어 있다는 것을 보여주는 Tuffcode (스니퍼)를 다운로드했습니다! URL2하는 URL1에서 전환

- (IBAction)grabURLInBackground:(id)sender 
{ 
    NSURL *url = [NSURL URLWithString:@"url1"]; 
    //NSURL *url = [NSURL URLWithString:@"url2"]; 
    ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url]; 
    [request setDelegate:self]; 
    [request addRequestHeader:@"Content-Language" value:@"en"]; 
    [request addRequestHeader:@"Content-Type" value:@"application/x-www-form-urlencoded"]; 
    [request addRequestHeader:@"Connection" value:@"keep-alive"]; 
    [request addRequestHeader:@"Cookie" value: [NSString stringWithFormat:@"botcust2=%@", sn]]; 
    [request setShouldAttemptPersistentConnection:NO]; 

    [request addPostValue:[input stringValue] forKey:@"input"]; 
    [input setStringValue:@""]; 
    [request startAsynchronous]; 

} 

빈 POST 본체에 잘 형성 POST 본문에서 이동합니다. 어떻게 그럴 수 있니? URL이 전송되는 것을 어떻게 결정할 수 있습니까? 처음에는 POST를 올바르게 해석하지 못하는 새로운 서버라고 생각했지만 Tuffcode가 맞으면 응용 프로그램에서 데이터를 보내지도 않았습니까 ??

또는 HTTP가 작동하는 방식에 대해 알지 못하는 무언가가 있습니까?

2011-07-29 12:28:36.018 ChatBot[6764:707] [STATUS] Starting asynchronous request <ASIFormDataRequest: 0x10188d420> 
2011-07-29 12:28:36.021 ChatBot[6764:6403] 
==== Building an application/x-www-form-urlencoded body ==== 
input=hello 
==== End of application/x-www-form-urlencoded body ==== 
2011-07-29 12:28:36.027 ChatBot[6764:6403] [CONNECTION] Request <ASIFormDataRequest: 0x10188d420> will not use a persistent connection 
2011-07-29 12:28:36.280 ChatBot[6764:6403] [STATUS] Request <ASIFormDataRequest: 0x10188d420> finished uploading data 
2011-07-29 12:28:36.374 ChatBot[6764:6403] [STATUS] Request <ASIFormDataRequest: 0x10188d420> received response headers 
2011-07-29 12:28:36.375 ChatBot[6764:6403] [STATUS] Request <ASIFormDataRequest: 0x10188d420> finished downloading data (0 bytes) 
2011-07-29 12:28:36.376 ChatBot[6764:6403] [STATUS] Request finished: <ASIFormDataRequest: 0x10188d420> 
+0

는 또한 HTML 양식은 브라우저에서 실행하는 두 URL이 작동 참고 : (index.php를 또는 이와 유사한 예) -;

TL 박사의 파일 이름으로 제출 된 URL의 끝에 확인 fine –

답변

0

왜 당신이 게시 한 후 캐릭터를 잘 null로 설정하는 : 나는 ...

일부 로그를 혼란 스러워요?

[request addPostValue:[input stringValue] forKey:@"input"]; 
[input setStringValue:@""]; 

컴파일러가이 두 줄의 순서를 전환하고 해당 null 문자열을 제출할 수도 있습니다. 2 행을 지우고 실행 해 보시지 않겠습니까?

+0

UI의 입력을 지 웁니다. 나는 그 라인을 지우려고했으나 실제로 도움이되지 못했습니다. 나는 때로는 "동료에 의한 재설정"이라고 말하며 때로는 입력이 스니퍼 (응답 없음)에 나타납니다. 하지만 이전 URL에서는 항상 두 가지 방식으로 작동합니다. –

0

사실 조금 후에,하지만 나는 비슷한 것을 실행했습니다. 당신과 마찬가지로 ASIHTTPRequest 설정을 사용하여 응용 프로그램의 이전 인스턴스와 작업 할 수 있지만 새 버전에서는 POST가 비어 있습니다 (데이터가 전송되지 않음). 나는 다른 쪽 끝에있는 서버가 잘 작동한다는 것을 알았으므로 (동일한 코드이지만 새로운 호스팅/URL) 그렇게 될 수 없다는 것을 알았다.

조금 놀아 본 후 이전 URL이 submission.php이지만 이번에는 내 새로운 URL 끝에 마술처럼 index.php를 추가하는 것이 자신의 폴더 (그냥/제출 /) 였음을 기억했습니다. 만들어진 것들이 다시 작동합니다. 그래서 URL 끝 부분에 파일이 없기를 싫어하는 것 같습니다.

NBSP

관련 문제