Что такое эквивалент C # этого запроса cURL PUT? - PullRequest
0 голосов
/ 09 ноября 2011

Я пытаюсь сделать следующее в C # ...

curl --request PUT \
  --user-agent "Your Client Name/1.0" \
  --header "Authorization: Basic YWRtaW46WW91ckFQSUtleUhlcmU=" \
  --header "Content-Type: application/xml" \
  --data-binary '<order><status_id>10</status_id></order>' \
  https://www.example.com/api/v2/orders/101

Я пытаюсь ответить 404 - Плохой запрос.Я никогда не смотрел на локон раньше.У кого-нибудь есть идеи?

var url = String.Format("https://www.website.com/api/v2/orders/{0}", 1647);
var credentials = Convert.ToBase64String(
               Encoding.ASCII.GetBytes(String.Format("{0}:{1}", "admin", "mypassword")));
var request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "PUT";
request.Headers.Add(String.Format("Authorization: Basic {0}", credentials));

var status = "<?xml version='\"1.0'\" encoding='\"UTF-8'\"?><order><status_id>2<order><status_Id>";

using (var stream = request.GetRequestStream())
{
   using (var writer = new BinaryWriter(stream))
   {
      writer.Write(status);
   }
 }

var response = request.GetResponse();

1 Ответ

1 голос
/ 09 ноября 2011

Обычно «неправильный запрос» вызван неправильным заголовком:

посмотрите на

 <?xml version='\"1.0'\" encoding='\"UTF-8'\"?>

это должно быть написано следующим образом

<?xml version=\"1.0\" encoding=\"UTF-8\"?>

без 'или, если вы хотите избежать побегов, вы можете написать

<?xml version='1.0' encoding='UTF-8'?>
...