我之前發佈了一個問題,但不幸的是我沒有得到任何有用的答案,所以我會以不同的方式嘗試。這是場景。ASIHTTPRequest問題
我在託管環境上設置了一個簡單的WCF RESTful服務。
我正在嘗試從iphone 4與此服務進行通信。以下是工作原理。
我有兩個uri模板設置。一個用於GET,一個用於POST。
在本地機器上運行控制檯應用程序我能夠獲取和POST數據。正在從請求中提取數據併發送到mysql數據庫。
在iphone上,我可以獲取數據。
不幸的是,我無法從iPhone發佈數據。
我一直在試圖讓ASIHTTPResuest工作。當我發送請求時,我得到responseStatusCode 200。
我試圖使用NSmutableTableRequest創建請求,但那也不起作用。請求沒有發送錯誤。
在這一點上,我假設POST請求是正確的,因爲我沒有收到任何錯誤,但web服務不知何故無法從XML正文中獲取數據。
我仍然處於WCF學習過程的中間,所以我錯過了一些「基本」的東西。
這會Datacontract和Operationcontact
[OperationContract]
[WebInvoke(UriTemplate = "/create",
Method = "POST", RequestFormat=WebMessageFormat.Xml,
BodyStyle=WebMessageBodyStyle.Bare)]
void CreateProduct(Product product);
....
[DataContract(Namespace="")]
public class Product {
[DataMember]
public string Id { get; set; }
[DataMember]
public string Name { get; set; }
[DataMember]
public string Description { get; set; }
}
能夠閱讀這條消息?
NSURL *url = [NSURL URLWithString:@"http://www.mydomian.com/create"];
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
NSData *myPostData = [[NSString stringWithFormat:@"<Product><Description>desc1</Description><Id></Id><Name>somebody</Name></Product>"] dataUsingEncoding:NSUTF8StringEncoding];
NSMutableData *myMutablePostData = [NSMutableData dataWithData:myPostData];
[request setPostBody:myMutablePostData];
[request setRequestMethod:@"POST"];
[request addRequestHeader:@"Content-Type" value:@"application/xml"];
[request setDelegate:self];
[request startSynchronous];
字面上,任何幫助將大大appriciated。
您是否嘗試從您的控制檯應用程序請求成功比較,從你的iPhone應用程序的失敗請求的URL?只需使用像Fiddler這樣的東西來看看電線上發生了什麼。 – Jim 2011-03-03 14:30:32
我的Windows機器上有Fiddler,我可以看到通過控制檯發送的成功請求。我沒有任何關於捕捉離開iphone的請求的mac。 – user643097 2011-03-03 15:32:37