繁体   English   中英

C#HttpClient返回错误404找不到

[英]C# HttpClient returns error 404 Not found

花了几个小时试图弄清楚这一点。 响应消息始终有404未找到错误。 任何帮助将不胜感激!

public static class BackendlessAPIHelper
{
    internal static string appId = "my-app-id";
    internal static string restSecret = "my-api-secret";
    internal static string backendlessBase = "https://api.backendless.com/";
    internal static string signupUrl = "v1/user/register";

    public static async Task<bool> UserSignup(string username, string password)
    {
        bool signupsuccessful = false;
        var client = new HttpClient();
        UserSignupBackendless newuser = new UserSignupBackendless { email = username, password = password };
        string newuserjson = JsonConvert.SerializeObject(newuser);

        try
        {
            client.BaseAddress = new Uri(backendlessBase);
            client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
            client.DefaultRequestHeaders.Add("application-id", BackendlessAPIHelper.appId);
            client.DefaultRequestHeaders.Add("secret-key", BackendlessAPIHelper.restSecret);
            client.DefaultRequestHeaders.Add("application-type", "REST");
            StringContent theContent = new StringContent(newuserjson, System.Text.Encoding.UTF8, "application/json");

            HttpResponseMessage response = await client.PostAsync(backendlessBase+signupUrl, theContent);
            if (response.IsSuccessStatusCode)
            {
                signupsuccessful = true;
                return signupsuccessful;
            }
            else
                return signupsuccessful;
        }
        catch(Exception ex)
        {
            ex.ToString();
            return signupsuccessful;
        }
    }
}

以下是API文档: https : //backendless.com/documentation/users/rest/users_user_registration.htm

我关注了位于此处的文章: http : //blogs.msdn.com/b/wsdevsol/archive/2013/02/05/how-to-use-httpclient-to-post-json-data.aspx

更新:我意识到了错误。 注册网址不正确(缺少字符)。

我认为您的基本网址正在重复:

client.BaseAddress = new Uri(backendlessBase);
// ...
HttpResponseMessage response = await client.PostAsync(backendlessBase+signupUrl, theContent);

您要指定两次backendlessBase 如果您已经使用BaseAddress指定了基准,则不要在调用中再次指定基准。

另外,如果您仔细阅读文档,则是users/register ,而不是user/register

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM