目的の C コードに問題があります。POST 要求を受け取り、C# を使用して Java サーブレットに書き込む API キーで保護された WCF API を作成しました。とにかく、これは Fiddler でテストするときにうまく機能しますが、目的 C からはあまり良くありません。目的 C から POST を実行しようとすると、NSURLMutableRequest が GET を探しているように「動作」し、応答はデフォルトのみを返します。 GET メソッド用に記述したコード。これがなぜなのか、さらに、それを修正するために何ができるかを誰かが知っていますか? これは、Objective C で他の POST リクエストを作成するために (かなり成功して) 私が使用するコードです。
問題は、NSMutableRequest の URL に API キーを指定したことですか? それが私が理解できる唯一のことです。
コードは次のとおりです。
NSString* theMessage = [NSString stringWithFormat:@"<MyRequestObject xmlns='http://schemas.datacontract.org/2004/07/MyService'></MyRequestObject>"];
NSMutableURLRequest *theRequest=[NSMutableURLRequest requestWithURL:[NSURL URLWithString:POST_API_URL]
cachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:240.0];
[theRequest setHTTPMethod:@"POST"];
[theRequest setValue:@"text/xml" forHTTPHeaderField:@"Content-Type"];
[theRequest setHTTPBody:[theMessage dataUsingEncoding:NSUTF8StringEncoding]];
NSString *msgLength = [NSString stringWithFormat:@"%d", [theMessage length]];
[theRequest addValue: msgLength forHTTPHeaderField:@"Content-Length"];
NSURLResponse* response;
NSError *error;
NSData* result = [NSURLConnection sendSynchronousRequest:theRequest returningResponse:&response error:&error];