Я пишу небольшое приложение, связанное с API, на C #.
Я подключаюсь к API, у которого есть метод, который принимает длинную строку, содержимое файла календаря (ics).
Я делаю это так:
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(URL);
request.Method = "POST";
request.AllowAutoRedirect = false;
request.CookieContainer = my_cookie_container;
request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
request.ContentType = "application/x-www-form-urlencoded";
string iCalStr = GetCalendarAsString();
string strNew = "&uploadfile=true&file=" + iCalStr;
using (StreamWriter stOut = new StreamWriter(request.GetRequestStream(), System.Text.Encoding.ASCII))
{
stOut.Write(strNew);
stOut.Close();
}
Кажется, это прекрасно работает, пока я не добавлю какой-то определенный HTML в свой календарь.
Если у меня есть «& nbsp» где-то в моем календаре (или аналогичном), сервер передает все данные только до точки «&», поэтому я предполагаю, что «&» делает это похожим на что-либо после этого точка принадлежит новому параметру?
Как я могу это исправить?