【发布时间】:2016-02-13 17:00:15
【问题描述】:
我正在使用安卓系统。我想将数据发布到 ASP.NET Web API。我使用以下方法尝试了http post
HttpPost httpPost = new HttpPost(url);
httpPost.setHeader("content-type", "application/json");
httpPost.setHeader("Accept", "application/json");
// adding post params
if (params != null) {
httpPost.setEntity(new UrlEncodedFormEntity(params));
}
Log.i("serrrrr",""+params);
httpResponse = httpClient.execute(httpPost);
我的名字值对看起来像
[attendance={"attendance_id":"0","Usr_Id":"5","Com_Id":"1","date":"12-11-2015","time_in":"04:41:41 pm","time_out":"","location_in":"my address","location_out":"","status_in":"true","status_out":"true","total_time":"","App_id":"1"}]
当我尝试将此数据发布到 web api 时,出现以下错误
{"Message":"发生错误。","ExceptionMessage":"对象引用未设置为对象的实例。","ExceptionType":"System.NullReferenceException","StackTrace":" at WebApplication.Areas.Json.Controllers.AttendancesController.PostAttendance(出勤)\r\n 在 lambda_method(Closure , Object , Object[] )\r\n 在 System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.c__DisplayClass10 .b__9(对象实例,Object[] 方法参数)\r\n 在 System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.Execute(对象实例,Object[] 参数)\r\n 在 System.Web.Http.Controllers .ReflectedHttpActionDescriptor.ExecuteAsync(HttpControllerContext controllerContext, IDictionary`2 arguments, CancellationToken cancelToken)\r\n--- System.Runtime.CompilerServices.TaskAwaiter 上一个引发异常的位置的堆栈跟踪结束---\r\n。 ThrowForNonSuccess(任务任务)\r\n 在 System.Runtime.CompilerServices.Ta skAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Web.Http.Controllers.ApiControllerActionInvoker.d__0.MoveNext()\r\n--- 堆栈跟踪从上一个引发异常的位置结束 ---\r \n 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)\r\n 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)\r\n 在 System.Web.Http.Controllers.ActionFilterResult.d__2 .MoveNext()\r\n--- 从先前引发异常的位置结束堆栈跟踪 ---\r\n 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n 在 System. Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Web.Http.Dispatcher.HttpControllerDispatcher.d__1.MoveNext()"}
我该如何解决这个问题?发送参数有问题吗?
【问题讨论】:
-
您是否可以访问服务器端代码,即 asp.net web api 服务?您发送参数的方式很可能存在问题,因为服务器可能需要额外的东西或不同格式的东西,但它不能正确地进行验证。不查看引发异常的服务器端代码是不可能弄清楚的
标签: java android asp.net asp.net-web-api