我正在开发一个项目,我必须通过 XML 字符串中的 HTTP POST 将产品信息发送到 Web 服务器。事实证明,某些产品名称的名称中可能带有 % 符号,例如“.05% Topical Cream”。每当我尝试发送产品名称中包含 % 符号的 XML 数据时,我都会收到错误消息,因为在对 XML 字符串数据进行编码时,百分号会导致数据格式不正确。
如何安全地编码和发送带有 % 登录产品名称的 XML 字符串数据?
XML 数据:
<node>
<product>
<BrandName>amlodipine besylate (bulk) 100 % Powder</BrandName>
</product>
</node>
网页请求代码:
public string MakeWebServerRequest(string url, string data)
{
var parms = System.Web.HttpUtility.UrlEncode(data);
byte[] bytes = Encoding.UTF8.GetBytes("xml=" + parms);
string webResponse = String.Empty;
try
{
System.Web.HttpUtility.UrlEncode(data);
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
req.ContentLength = bytes.Length;
using (Stream reqStream = req.GetRequestStream())
{
reqStream.WriteTimeout = 3000;
reqStream.Write(bytes, 0, bytes.Length);
reqStream.Close();
}
using (HttpWebResponse response = (HttpWebResponse)req.GetResponse())
{
using (StreamReader rdr = new StreamReader(response.GetResponseStream()))
{
webResponse = rdr.ReadToEnd();
rdr.Close();
}
response.Close();
}
}
我应该以不同的方式创建 Web 请求吗?在保持产品名称的同时,我可以做些什么来解决?
已更正 - 现在正在工作。谢谢
谢谢