0

我正在使用我的 WP8 设备进行一些测试,并尝试将本机应用程序连接到 BaasBox 服务。由于 BaasBox 尚不支持 WP,我正在尝试按照支持的 JavaScript 文档建立连接

使用HttpClient该类的 C# 代码:

using (var client = new HttpClient())
{
    //Send HTTP request
    //This code sets the base URI for HTTP requests, 
    //and sets the Accept header to "application/json", which tells the server to send data in JSON format
    client.BaseAddress = new Uri("http://openerp.homelinux.com:9000");
    client.DefaultRequestHeaders.Accept.Clear();
    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

    //
    BaasBoxLogin login = new BaasBoxLogin();
    login.userName = "testuser";
    login.password = "testpwd";
    login.appcode = "1234567890";

    HttpResponseMessage response = await client.PostAsJsonAsync(new Uri("http://openerp.homelinux.com:9000/console/"), login);

    if (response.IsSuccessStatusCode)
    {
        //get the uri of the created resource
        Uri gizmoResponse = response.Headers.Location;
    }
    else
    {
        this.LblToken.Text = "TokenId: NOT Found";
    }
}

从我的设备运行和调试上述代码时,在尝试建立连接后会生成以下消息:

{
    StatusCode: 404,
    ReasonPhrase: 'Not Found',
    Version: 0.0,
    Content: System.Net.Http.StreamContent,
    Headers: {
            Content-Length: 399 Content-Type: application/json; charset=utf-8
    }
}

如前所述,我正在使用HttpClient该类。但是,我正在考虑使用HttpWebRequest来实现登录BaasBox服务

知道如何执行此操作吗?

4

2 回答 2

2

您连接的端点是错误的。

前提是已在服务器上创建了特定用户。

您应该发帖到:http://openerp.homelinux.com:9000/login/ 并提供自定义标题X-BAASBOX-APPCODE: 1234567890

此外,目前,您应该为登录请求提供正文: application/x-www-form-urlencoded

一般来说,您可以按照 curl 中为其余 api 提供的示例: http ://www.baasbox.com/documentation/?shell#login

于 2014-08-04T17:16:51.800 回答
0

@eliantor 提供的答案是正确的,但端点是错误的。正确的http://openerp.homelinux.com:9000/login没有最后一个/

于 2014-08-04T18:24:34.633 回答