无法 post json 使用 c# 到 google 云端点
Unable to post json using c# to google cloud endpoint
我已经创建了一个实体端点并部署到 google 云应用引擎。
https://alert-streamer-857.appspot.com/_ah/api/error/v1/error
如果我 POST 以下 JSON 在 chrome 中使用高级 REST 客户端,该项目已成功添加到数据存储区。
{
ipAddress: "123.456.789.098",
host: "jbuddha-lap",
user: "buddha",
message: "testing from c#"
}
我收到以下回复
{
"id": "5642554087309312",
"syncTime": "2015-02-16T06:52:10.347Z",
"user": "buddha",
"host": "jbuddha-lap",
"ipAddress": "123.456.789.098",
"message": "testing from c#",
"kind": "error#resourcesItem",
"etag": "\"7D_54po0JQelJxcYULKayrO-_rE/GG6ep9m3yZRlAja6F1zqro8PO20\""
}
这符合预期。然而,我面临的问题是我试图从 c# 程序发送完全相同的 json,但没有成功添加。以下是发送此信息的 c# 程序。
string json = "{ ipAddress: \"123.456.789.098\",host: \"jbuddha-lap\",user: \"buddha\",message: \"testing from c#\"}";
string result = "";
using (var client = new WebClient())
{
result = client.UploadString("https://alert-streamer-857.appspot.com/_ah/api/error/v1/error", "POST", json);
}
Console.WriteLine(result);
以下是 JSON 回复。 id 和 syncTime 的值是自动生成的,这就是它们出现在两个响应中的原因。但是正如您可能已经看到的那样,插入没有正确发生。
{
"id": "5086441721823232",
"syncTime": "2015-02-16T06:57:28.249Z",
"kind": "error#resourcesItem",
"etag": "\"7D_54po0JQelJxcYULKayrO-_rE/Npk3iyaHaGMHYmOeFtt5sPUK1yU\""
}
谁能告诉我哪里做错了?
您必须将内容类型设置为 "application/json",如下所示。
client.Headers.Add(HttpRequestHeader.ContentType, "application/json");
我已经创建了一个实体端点并部署到 google 云应用引擎。
https://alert-streamer-857.appspot.com/_ah/api/error/v1/error
如果我 POST 以下 JSON 在 chrome 中使用高级 REST 客户端,该项目已成功添加到数据存储区。
{
ipAddress: "123.456.789.098",
host: "jbuddha-lap",
user: "buddha",
message: "testing from c#"
}
我收到以下回复
{
"id": "5642554087309312",
"syncTime": "2015-02-16T06:52:10.347Z",
"user": "buddha",
"host": "jbuddha-lap",
"ipAddress": "123.456.789.098",
"message": "testing from c#",
"kind": "error#resourcesItem",
"etag": "\"7D_54po0JQelJxcYULKayrO-_rE/GG6ep9m3yZRlAja6F1zqro8PO20\""
}
这符合预期。然而,我面临的问题是我试图从 c# 程序发送完全相同的 json,但没有成功添加。以下是发送此信息的 c# 程序。
string json = "{ ipAddress: \"123.456.789.098\",host: \"jbuddha-lap\",user: \"buddha\",message: \"testing from c#\"}";
string result = "";
using (var client = new WebClient())
{
result = client.UploadString("https://alert-streamer-857.appspot.com/_ah/api/error/v1/error", "POST", json);
}
Console.WriteLine(result);
以下是 JSON 回复。 id 和 syncTime 的值是自动生成的,这就是它们出现在两个响应中的原因。但是正如您可能已经看到的那样,插入没有正确发生。
{
"id": "5086441721823232",
"syncTime": "2015-02-16T06:57:28.249Z",
"kind": "error#resourcesItem",
"etag": "\"7D_54po0JQelJxcYULKayrO-_rE/Npk3iyaHaGMHYmOeFtt5sPUK1yU\""
}
谁能告诉我哪里做错了?
您必须将内容类型设置为 "application/json",如下所示。
client.Headers.Add(HttpRequestHeader.ContentType, "application/json");