我正在使用文本分析 API 通过传递 JSON 对象来检测情绪和得分。根据文档中提到的信息,如果我们得到的响应为 200,那么 API 将返回正确的结果和情绪分数。现在的问题是我得到的响应为 200,但我没有得到用于进一步处理的情绪分数。
请求对象:
{ "documents": [{ "language": "en", "id": 1, "text": "I had a wonderful experience" }, { "language": "en", "id": 2, "text": "It was an Ugly picture" }] }
response object:
{
"Version": {
"Major": 1,
"Minor": 1,
"Build": -1,
"Revision": -1,
"MajorRevision": -1,
"MinorRevision": -1
},
"Content": {
"Headers": [{
"Key": "Content-Type",
"Value": ["application/json; charset=utf-8"]
}]
},
"StatusCode": 200,
"ReasonPhrase": "OK",
"Headers": [{
"Key": "Transfer-Encoding",
"Value": ["chunked"]
}, {
"Key": "x-ms-transaction-count",
"Value": ["1"]
}, {
"Key": "x-aml-ta-request-id",
"Value": ["f78d8964-a2a1-4b67-aaa5-1a92b6ea25f9"]
}, {
"Key": "X-Content-Type-Options",
"Value": ["nosniff"]
}, {
"Key": "apim-request-id",
"Value": ["0882ea1e-6c31-4a2c-b3c0-1963ec0734c1"]
}, {
"Key": "Strict-Transport-Security",
"Value": ["max-age=31536000; includeSubDomains; preload"]
}, {
"Key": "Date",
"Value": ["Sat, 01 Jul 2017 19:49:10 GMT"]
}],
"RequestMessage": {
"Version": {
"Major": 1,
"Minor": 1,
"Build": -1,
"Revision": -1,
"MajorRevision": -1,
"MinorRevision": -1
},
"Content": {
"Headers": [{
"Key": "Content-Type",
"Value": ["application/json"]
}, {
"Key": "Content-Length",
"Value": ["135"]
}]
},
"Method": {
"Method": "POST"
},
"RequestUri": "https://westus.api.cognitive.microsoft.com/text/analytics/v2.0/sentiment",
"Headers": [{
"Key": "Ocp-Apim-Subscription-Key",
"Value": ["************************"]
}],
"Properties": {}
},
"IsSuccessStatusCode": true
}
下面是传递给 JSON 对象并调用 webAPI 的代码
var client = new HttpClient();
var queryString = HttpUtility.ParseQueryString(string.Empty);
enter code here
// Request headers
client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", "******************");
var uri = "https://westus.api.cognitive.microsoft.com/text/analytics/v2.0/sentiment";
HttpResponseMessage response;
Document doc = new Document();
byte[] byteData = Encoding.UTF8.GetBytes(doc.ReturnJson());
using (var content = new ByteArrayContent(byteData))
{
content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
response = await client.PostAsync(uri, content);
response.ToJSON();
}
以下是参考微软代码和参考的链接:
https://westus.api.cognitive.microsoft.com/text/analytics/v2.0/sentiment
using System;
using System.Net.Http.Headers;
using System.Text;
using System.Net.Http;
using System.Web;
using System.IO;
namespace CSHttpClientSample
{
static class Program
{
static void Main()
{
MakeRequest();
Console.WriteLine("Hit ENTER to exit...");
Console.ReadLine();
}
static async void MakeRequest()
{
var client = new HttpClient();
var queryString = "";
// Request headers
client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", "YOUR KEY IN HERE");
var json = "{ \"documents\": [ { \"language\": \"en\", \"id\": \"1\", \"text\": \"I had a wonderful experience\" }, { \"language\": \"en\", \"id\": \"2\", \"text\": \"It was an Ugly picture\" } ]}";
var uri = "https://westus.api.cognitive.microsoft.com/text/analytics/v2.0/sentiment?" + queryString;
HttpResponseMessage response;
// Request body
byte[] byteData = Encoding.UTF8.GetBytes(json);
using (var content = new ByteArrayContent(byteData))
{
content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
response = await client.PostAsync(uri, content);
Console.WriteLine(response.Content.ReadAsStringAsync().Result);
}
}
}
}
输出
Hit ENTER to exit...
{"documents":[{"score":0.972635705189504,"id":"1"},{"score":0.0438970184772759,"id":"2"}],"errors":[]}