我有一个 WCF 网络服务。如果我只是将 URL 放入浏览器,我会收到错误消息:Forbidden。但如果我通过 Fetcher(OS X 中的 HTTP 模拟器)发布数据,我可以获得正确的返回值。
现在,我尝试使用 NSURLConnection 将数据发布到 Web 服务并获取返回值。
NSMutableURLRequest * request = [NSMutableURLRequest requestWithURL:postURL];
[request setHTTPMethod:@"POST"];
[request setValue:[NSString stringWithFormat:@"%d", postData.length] forHTTPHeaderField:@"Content-Length"];
[request setValue:@"application/x-www-form-urlencoded; charset=utf-8" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:postData];
NSURLResponse * response = nil;
NSError * error = [[NSError alloc] init];
receivedData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
NSString * receivedStr = [[NSString alloc] initWithData:receivedData encoding:NSUTF8StringEncoding];
但我得到的只是我可以从浏览器中看到的错误页面的 html 代码(禁止消息)。
请帮我弄清楚。提前致谢。
编辑:我设置了一个 PHP 服务器并尝试做同样的事情。我工作完美。因此,我高度怀疑这是 WCF 问题。有人有什么好主意吗?