2017-01-06 22 views
4

これはそのままですが、URLへのポストリクエストを行うWatsonサービスを使用しようとしています.cURLコードは次のとおりです。 Visual Basic言語でVisual Studioでこの要求に相当する処理を行うにはどうすればよいですか?VB.NETでのCurlリクエスト

curl -X POST -u "{username}":"{password}" —-header "Content-Type:application/json" --data "{\"input\": {\"text\": \"Turn on the lights\"}, \"context\": {\"conversation_id\": \"1b7b67c0-90ed-45dc-8508-9488bc483d5b\", \"system\": {\"dialog_stack\": [\"root\"], \"dialog_turn_counter\": 1, \"dialog_request_counter\": 1}}}" "https://gateway.watsonplatform.net/conversation/api/v1/workspaces/25dfa8a0-0263-471b-8980-317e68c30488/message?version=2016-09-20" 
ソリューションカールでより多くの情報、ドキュメントのURLについては、

https://www.ibm.com/watson/developercloud/conversation/api/v1/

資格情報と他のすべての罰金です。私はNode.jsの私の例から取り出しました。

var watson = require('watson-developer-cloud'); 

var conversation = watson.conversation({ 
    username: '1793094a-e543-4e3a-891d-4b619f21271d', 
    password: 'xjmacpjHceRj', 
    version: 'v1', 
    version_date: '2016-09-20' 
}); 

// Replace with the context obtained from the initial request 
var context = {}; 

conversation.message({ 
    workspace_id: '7c7b099b-aed4-4d27-a379-8b2f33644600', 
    input: {'text': 'Turn on the lights'}, 
    context: context 
}, function(err, response) { 
    if (err) 
    console.log('error:', err); 
    else 
    console.log(JSON.stringify(response, null, 2)); 
}); 

VB.NETの実装です。

Dim myReq As HttpWebRequest 
    Dim myResp As HttpWebResponse 
    Dim reader As StreamReader 

    Try 
     myReq = HttpWebRequest.Create("https://gateway.watsonplatform.net/conversation/api/v1/workspaces/7c7b099b-aed4-4d27-a379-8b2f33644600/message?version=2016-09-20") 

     myReq.Method = "POST" 
     myReq.ContentType = "application/json" 
     myReq.Headers.Add("Authorization", Convert.ToBase64String(Encoding.Default.GetBytes("1793094a-e543-4e3a-891d-4b619f21271d:xjmacpjHceRj"))) 
     Dim myData As String = "{input: {text: " + txtEnviar.Text + "}, context: {conversation_id: 1b7b67c0-90ed-45Dc-8508-9488bc483d5b\, system\: {dialog_stack: [root], dialog_turn_counter: 1, dialog_request_counter: 1}}}" 

     myReq.GetRequestStream.Write(System.Text.Encoding.UTF8.GetBytes(myData), 0, System.Text.Encoding.UTF8.GetBytes(myData).Count) 
     myResp = myReq.GetResponse 
     Dim myreader As New System.IO.StreamReader(myResp.GetResponseStream) 
     Dim myText As String 
     myText = myreader.ReadToEnd() 

     txtMuestra.Items.Add(myText) 

     Catch ex As Exception 
      txtMuestra.Items.Add(ex) 
    End Try 
End Sub 

ただし、認証エラーが発生します。私はヘッダーによって許可されていない認証を送信する方法はかなり正しいとは思わない。私はVB.NETのユーザーではないので、私は私の問題を抱えています。

image error

答えて

2
Dim myReq As HttpWebRequest 
Dim myResp As HttpWebResponse 

myReq = HttpWebRequest.Create("https://meineURI.net") 

myReq.Method = "POST" 
myReq.ContentType = "application/json" 
myReq.Headers.add("Authorization", "Basic " & Convert.ToBase64String(Encoding.UTF8.GetBytes("username:password"))) 
Dim myData As String = "yourDataHere" 
myReq.GetRequestStream.Write(System.Text.Encoding.UTF8.GetBytes(myData), 0, System.Text.Encoding.UTF8.GetBytes(myData).Count) 
myResp = myReq.GetResponse 
Dim myreader As New System.IO.StreamReader(myResp.GetResponseStream) 
Dim myText As String 
myText = myreader.ReadToEnd 
+0

友達はあなたの例を実装するが、それは申し訳ありませんああ、私は少し詳しく忘れてしまった私に認証 – user7362292

+0

を与えるものではありません: ''「基本」& ''修正されています。 – TimeO84

関連する問題