私は、製品情報を HTTP POST 経由で XML 文字列で Web サーバーに送信する必要があるプロジェクトに取り組んでいます。特定の製品名には、「.05% トピカル クリーム」など、名前に % 記号が含まれている場合があります。製品名に % 記号を含む XML データを送信しようとすると、XML 文字列データをエンコードするときにパーセント記号が原因でデータが不正な形式になるため、エラーが発生するようです。
% sign in 製品名を含む XML 文字列データを安全にエンコードして送信するにはどうすればよいですか?
XML データ:
<node>
<product>
<BrandName>amlodipine besylate (bulk) 100 % Powder</BrandName>
</product>
</node>
Web リクエスト コード:
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 要求を作成する必要がありますか? 製品名を維持したまま、解決するにはどうすればよいですか?
修正済み - 現在作業中です。ありがとう
ありがとう