首页 > 解决方案 > WinHttpRequest:发送方法

问题描述

我正在尝试在请求正文中传递参数,文档说:

要发送的请求是在对 Open 方法的先前调用中定义的。调用应用程序可以通过 Body 参数提供要发送到服务器的数据。如果对象的 Open 的 HTTP 动词是“GET”,则此方法发送没有 Body 的请求,即使它是由调用应用程序提供的。

所以,我需要在正文中使用POST。但是当我将POST与正文一起使用时,我有错误“错误请求:消息文本为空”,而当我将GET与正文一起使用时,结果是好的。为什么?

我的代码:

WinHttp = NEW COMObject("WinHttp.WinHttpRequest.5.1"); 
WinHttp.Open("GET", "http://api.telegram.org/botbotname/sendMessage", 0);

WinHttp.setRequestHeader("Content-type", "application/json");

JSONWr = New JSONWriter();  
JSONWr.ValidateStructure = False;   

JSONParams = New JSONWriterSettings( , Chars.Tab);  

JSONWr.SetString(JSONParams);   

JSONWr.WriteStartObject();

JSONWr.WritePropertyName("chat_id");
JSONWr.WriteValue(UserId);

JSONWr.WritePropertyName("text");
JSONWr.WriteValue(Text);

JSONWr.WriteEndObject();

JSONString = JSONWr.Close();

WinHttp.Send(JSONString);

工作,但如何?为什么与POST一样不起作用?

标签: winhttpwinhttprequest

解决方案


推荐阅读