具有希伯来语字符的Http WebRequest(SQL Server CLR sp)

本文关键字:Server SQL CLR sp WebRequest 希伯来语 字符 Http | 更新日期: 2023-09-27 18:20:08

我准备了一个CLR存储过程,以便发送SMS(消息传递)web服务的GET请求。这是代码:

[Microsoft.SqlServer.Server.SqlProcedure]
public static void HttpGet(SqlString uri, out SqlString textResponse)
{
    Uri webUri = new Uri(uri.Value);
    HttpWebRequest webReq = (HttpWebRequest)WebRequest.Create(webUri);
    webReq.Method = "GET";
    WebResponse response = webReq.GetResponse();
    Stream dataStream = response.GetResponseStream();
    using (dataStream)
    {
        StreamReader reader = new StreamReader(dataStream);
        using (reader)
        {
            textResponse = reader.ReadToEnd();
        }
    }
}

我正在尝试发送以下请求:

http://serviceaddress/SMSManager/msgSend.jsp?msg=עברית&to=sms:050-1234567&encoding=windows-1255

出于某种原因,我收到的信息是胡言乱语。

  • 我试过用希伯来语字母向其他网络服务发送请求,效果很好
  • 我试过对希伯来语部分进行URL编码,但也不起作用。我尝试将请求的编码更改为"utf8"或省略它。没有成功
  • 我尝试在OLE自动化过程中使用完全相同的URL(带有希伯来语字母)。它奏效了

我欢迎任何关于如何继续或如何解决问题的建议。

谢谢你。

具有希伯来语字符的Http WebRequest(SQL Server CLR sp)

您必须对URL进行编码。查看HttpUtility.UrlEncode方法