【发布时间】:2011-07-06 05:45:01
【问题描述】:
我正在尝试让我的应用将数据发送到 WCF RESTful Web 服务。
此时我没有收到来自 ASIHTTPRequest 的任何错误消息,但 Web 服务也没有执行任何操作。
你们可以看看它,看看你能不能发现什么?
Xcode
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>some body</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];
网络服务
...
公开课产品 { [数据成员] 公共字符串 ID { 获取;放; }
[DataMember]
public string Name { get; set; }
[DataMember]
public string Description { get; set; }
}
...
[操作合同] [WebInvoke(UriTemplate = "/create", Method = "POST", RequestFormat=WebMessageFormat.Xml, BodyStyle=WebMessageBodyStyle.Bare)] void CreateProduct(产品产品);
...
...创建产品...
myConnection.Open();
string insertString = "insert into tbldata (desc,Name) values (@desc,@Name)";
MySqlCommand myCommand = new MySqlCommand(insertString, myConnection);
myCommand.Parameters.Add("@desc", MySqlDbType.VarChar, 12);
myCommand.Parameters.Add("@Name", MySqlDbType.VarChar, 40);
myCommand.Parameters["@desc"].Value = product.Description;
myCommand.Parameters["@Name"].Value = product.Name;
myCommand.ExecuteNonQuery();
【问题讨论】:
-
您是否尝试过为此请求实现委托方法?您应该会收到有助于确定问题所在的错误消息。
-
setDidFinishSelector 返回空响应字符串。当我询问 responseStatusCode 时,我得到了 200。
标签: iphone wcf xcode asihttprequest