2016-07-21 2 views
0

Azure Machine Learning - Text Analytics REST APIを使用して作業します。 POST経由でペイロードをサーバーに送信する必要があります。 「シリアライズからAzure Machine Learning - Text Analytics C#JSON本体を確認した後でもボディが正しくない

static IRestResponse GetResp(string url, string key, string jsonText) { 
    IRestClient client = new RestClient(url); 
    IRestRequest request = new RestRequest() { RequestFormat = DataFormat.Json }; 
    request.AddHeader("Content-Type", "application/json"); 
    request.AddHeader("Ocp-Apim-Subscription-Key", key); 
    IRestResponse response = client.ExecuteAsPost(request, "POST"); 

}

// Here the code that serializes the object to look precisely like body advertised calls it: 
string json = JsonConvert.SerializeObject(documents); 
IRestResponse resp = GetResponse("https://westus.api.cognitive.microsoft.com/text/analytics/v2.0/keyPhrases", TaxonomyGlueKey, json); 

メッセージ本文:私はここでIBMワトソン

で行うのと同様の結果を得るために、ここでコアコードだ、私はコンソールアプリで試したものですしようとしています「文書」とは:

{ 
"documents": [ 
    { 
    "language": "en", 
    "id": "4", 
    "text": "Lateral internal sphincterotomy and fissurectomy" 
    }, 
    { 
    "language": "en", 
    "id": "5", 
    "text": "Fissurectomy and Botox injection" 
    } 
]} 

不正なリクエストエラーが発生します。リクエストが送信されたことを確認して認証を渡しました(以前は失敗していました)。私はこれについても多くのバリエーションを試しました。

私は私のリクエストボディを試してみることができるよとデバッグ変数から直接Azureので提供本文にテキストをコピーするときには、正常に動作する:

https://westus.dev.cognitive.microsoft.com/docs/services/TextAnalytics.V2.0/operations/56f30ceeeda5650db055a3c6/console

私は上記を使用してテストする場合、私は応答を取得期待、ステータス200:

Transfer-Encoding: chunked 
x-aml-ta-request-id: c4ea9fff-8068-42a3-99c4-68717acddcf5 
X-Content-Type-Options: nosniff 
apim-request-id: e5eb593b-96a3-4806-9143-1d83424569be 
Date: Thu, 21 Jul 2016 14:14:44 GMT 
Content-Type: application/json; charset=utf-8 

{ 
    "documents": [ 
     { 
     "keyPhrases": [ 
     "fissurectomy" 
     ], 
     "id": "4" 
    }, 
    { 
     "keyPhrases": [ 
     "Botox injection" 
     ], 
     "id": "5" 
    } 
    ], 
    "errors": [] 
} 

答えて

1

私は評判分析のためのJQueryREST APIで働いていました。私は受け取ったのと同じエラーを受けました。 入力のJSON-serialized versionをリクエスト本体として提供することで、問題なく動作するようになりました。ここで

を使用すると、C#コードを使用しているように見える、作業コード -

$(function() { 
var params ={ 
"documents": [ 
{ 
"language": "en", 
"id": "1", 
"text": "this is AWESOME!" 
} 
] 
}; 


$.ajax({ 
url: "https://westus.api.cognitive.microsoft.com/text/analytics/v2.0/sentiment?" + $.param(params);, 
beforeSend: function(xhrObj){ 
// Request headers 
xhrObj.setRequestHeader("Content-Type","application/json"); 
xhrObj.setRequestHeader("Ocp-Apim-Subscription-Key","<your subscription key here>"); 
xhrObj.setRequestHeader("Accept","application/json"); 
}, 
type: "POST", 
// Request body 
data: JSON.stringify(params) 
}) 
.done(function(data) { 
     alert("Sentiment score is " + data.documents[0].score); 

    }) 
    .fail(function() { 
     alert("error"); 
    }); 
}); 
+0

フォーマットの変更を提案してくれてありがとう、Vikash :) –

0

@Makkです。 テキスト解析のドキュメントには、動作するC#サンプルがあるquick-startセクションがあります。

関連する問題