我正在WP8设备上做一些测试,并尝试将一个本地应用程序连接到BaasBox服务。由于BaasBox还不支持WP,所以我尝试按照受支持的JavaScript文档建立一个连接
使用C#类的HttpClient代码:
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服务
知道怎么做吗?
发布于 2014-08-04 18:24:34
@eliantor提供的答案是正确的,但端点是错误的。右边的是http://openerp.homelinux.com:9000/login,没有最后一个/。
发布于 2014-08-04 17:16:51
连接到的端点是错误的。
只要在服务器上创建了特定的用户。
您应该发布一个post到:http://openerp.homelinux.com:9000/login/,并提供一个自定义的标题X-BAASBOX-APPCODE: 1234567890
此外,当前,您应该将登录请求的主体提供为:application/x-www-form-urlencoded
通常,您可以遵循curl:http://www.baasbox.com/documentation/?shell#login中为rest提供的示例。
https://stackoverflow.com/questions/25092478
复制相似问题