将表单数据从xamarin表单应用程序发布到宁静的webapi

时间:2017-09-08 01:57:09

标签: asp.net-web-api xamarin.forms restful-url

我创建了一个安静的webapi,并决定使用microsoft account / register选项注册新用户。 我使用Postman选择x-www-form-urlencoded在body部分使用帖子测试了这个。 这很好用,写入数据库没有任何问题。

我进一步在我的xamarin表单应用程序中编写了以下代码

public class RegisterService
{
    public async Task<bool> Register(RegisterBindingModel objReg){

        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Constants.lnregister);
        request.Method = "POST";
        request.ContentType = "application/json";
        request.Accept = "application/json";
        string json = JsonConvert.SerializeObject(objReg);
        byte[] bytes = Encoding.UTF8.GetBytes(json);

        using(Stream stream = await request.GetRequestStreamAsync())
        {
            stream.Write(bytes,0,bytes.Length);
        }

        try{
            await request.GetResponseAsync();
            return true;

        }catch(Exception ex){
            string errormessage = ex.Message;
            return false;
        }

    }  

我回来的只是下面的错误

    {System.Net.WebException: The remote server returned an error: (400) Bad Request.
      at System.Net.HttpWebRequest.EndGetResponse (System.IAsyncResult asyncResult) [0x00052] in /Library/Frameworks/Xamarin.iOS.framework/Versions/10.12.0.20/src/mono/mcs/class/System/System.Net/HttpWebRequest.cs:1029 
      at System.Threading.Tasks.TaskFactory`1[TResult].FromAsyncCoreLogic (System.IAsyncResult iar, System.Func`2[T,TResult] endFunction, System.Action`1[T] endAction, System.Threading.Tasks.Task`1[TResult] promise, System.Boolean requiresSynchronization) [0x0000f] in /Library/Frameworks/Xamarin.iOS.framework/Versions/10.12.0.20/src/mono/mcs/class/referencesource/mscorlib/system/threading/Tasks/FutureFactory.cs:550 
    --- End of stack trace from previous location where exception was thrown ---
      at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in /Library/Frameworks/Xamarin.iOS.framework/Versions/10.12.0.20/src/mono/mcs/class/referencesource/mscorlib/system/runtime/exceptionservices/exceptionservicescommon.cs:151 
      at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) [0x00037] in /Library/Frameworks/Xamarin.iOS.framework/Versions/10.12.0.20/src/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:187 
      at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) [0x00028] in /Library/Frameworks/Xamarin.iOS.framework/Versions/10.12.0.20/src/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:156 
      at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) [0x00008] in /Library/Frameworks/Xamarin.iOS.framework/Versions/10.12.0.20/src/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:128 
      at System.Runtime.CompilerServices.TaskAwaiter`1[TResult].GetResult () [0x00000] in /Library/Frameworks/Xamarin.iOS.framework/Versions/10.12.0.20/src/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:357 
      at Articles.ArticlesServices.RegisterService+<Register>d__0.MoveNext () [0x00164] in /Users/xxxxxx/Projects/Articles/Articles/ArticlesServices/RegisterService.cs:28 }

我的uri看起来像http://xxxx.com/Api/Account/Register

我是这些人的新手。我做错了什么?

0 个答案:

没有答案