我正在尝试向电报发送自签名证书。配置将通过PostMan完成,并且我的 Bot 服务器正常(通过getUpdates
ssl 连接的测试和操作调用响应成功)。
这是我发送给电报的内容:
api.telegram.org/botMY TOKEN/setWebhook?url=MY SWERVER IP:443/api/webhook
我确实将PUBLICKEY.pem作为二进制正文附加到请求中。
这是我得到的:
{ "ok": true, "result": true, "description": "Webhook was set" }
问题是当我通过以下方式检查 webHook 时getWebHookInfo
:
{
"ok": true,
"result": {
"url": "94.183.157.125:443/api/webhook",
"has_custom_certificate": false,
"pending_update_count": 5,
"last_error_date": 1476206652,
"last_error_message": "Connection timed out"
}
}
其中属性"has_custom_certificate" : false
意味着它没有获得我的证书:\
我在这里做错了什么?
PostMan的任何替代品?
更进一步
我尝试了HttpClient
以下方法,但没有成功:\
public string SetWebHook()
{
FileStream paramFileStream = new FileStream(@"E:\PATH.......\YOURPUBLIC.pem", FileMode.Open);
HttpContent fileStreamContent = new StreamContent(paramFileStream);
var response = string.Empty;
using (var client = new HttpClient())
using (var formData = new MultipartFormDataContent())
{
formData.Add(fileStreamContent, "Certificate", "YOURPUBLIC.pem");
response = client.PostAsync("https://api.telegram.org/botMYTOKEN/setWebhook?url=MYSERVERIP:443/api/webhook", formData).Result.ToString();
}
return response;
}