0
-(void)uploadJob:(Job *)job
{
    NSLog(@"Server: uploadJob: called");
    NSString *preparedJob=[Database prepareJobForUploading:job];
    if ([preparedJob isEqualToString:@""])
    {
        return;
    };
    NSLog(@"preparedJob: %@", preparedJob);
    NSString *post = [NSString stringWithFormat:@"accessToken=%@&job=%@", self.key, preparedJob];
    NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:NO];
    NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]];

    NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
    [request setURL:[NSURL URLWithString:[NSString stringWithFormat:@"%@upload.aspx", serverAPIPath]]];
    [request setHTTPMethod:@"POST"];
    [request setValue:postLength forHTTPHeaderField:@"Content-Length"];
    [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
    [request setHTTPBody:postData];    
    NSURLResponse *response;
    NSError *error;
    NSData *urlData=[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
    NSLog(@"responseData: %@", [urlData description]);
    NSString *responseString=[NSString stringWithFormat:@"response: %d. description: %@",[(NSHTTPURLResponse *)response statusCode],[NSHTTPURLResponse localizedStringForStatusCode:[(NSHTTPURLResponse *)response statusCode]]];
    NSString *resultString=[[NSString alloc] initWithData:urlData encoding:NSUTF8StringEncoding];
    NSLog(@"response: %@", responseString);
    NSLog(@"result: %@", resultString);
}

このコードはコンパイルされますが、機能しません。サーバーから空のデータが返されますが、空であってはなりません。問題は次のようです:私のpostData変数はUTF8エンコーディングで送信されますが、ASCIIでは送信されません(たとえば、シンボルが%20に変更された場合など)。私のコードの何が問題になっていますか? この問題を解決するにはどうすればよいですか?

ちなみにpreparedJob文字列は生成されたJSONを含む文字列です

4

0 に答える 0