我使用以下方法使用Web Api:
[HttpPost]
public HttpResponseMessage Complete(__ServiceComplete ServiceCompleteInfo)
{
HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.BadRequest);
// Send SMS to User for completion
//////////////////////////////////////////////////////////////////
SmsBL blSms = new SmsBL();
blSms.SendServiceCompleteSms(ServiceCompleteInfo.ProposalId, ServiceCompleteInfo.CallId);
response = new HttpResponseMessage(HttpStatusCode.OK);
}
return response;
}
SendServiceCompleteSms
函数是异步的。
现在,我从Android应用程序调用此函数,并使用调试器监视所有内容。
如果我评论该行并且没有调用SendServiceCompleteSms,我会在我的Android应用程序中收到Http.OK响应。
如果我取消注释SendServiceCompleteSms
,则会发送一条短信,我可以看到该方法从服务器返回Http.OK
。但是,在Android内部我得到Java.io.FileNotFoundException
,Http代码'内部服务器错误'(500),好像找不到方法一样。
知道怎么处理这个吗?
答案 0 :(得分:0)
不是找不到方法,the SendServiceCompleteSms method
抛出异常。
另外,你说SendServiceCompleteSms
方法是异步的,但你是同步调用它的。最好这样做:
[HttpPost]
public async Task<HttpResponseMessage> CompleteAsync(__ServiceComplete ServiceCompleteInfo)
{
HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.BadRequest);
// Send SMS to User for completion
//////////////////////////////////////////////////////////////////
SmsBL blSms = new SmsBL();
await blSms.SendServiceCompleteSms(ServiceCompleteInfo.ProposalId, ServiceCompleteInfo.CallId);
response = new HttpResponseMessage(HttpStatusCode.OK);
}
return response;
}