带有自定义标头的HTTP Post请求

时间:2012-06-21 15:06:37

标签: c# http-headers

我想从C#发出HTTP Post请求。此请求具有自定义标头。当我尝试启动我的程序时,我收到了这个例外:

意大利语:

  

Questa intestazione deve essere modificata utilizzandolaproprietào   il metodo appropriato。 Nome parametro:名称

英文:

  

必须使用适当的属性或方法修改此标头。

在线:request.Headers.Add("Content-Type", "text/x-gwt-rpc; charset=utf-8");

这是我的代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Collections.Specialized;
using System.IO;
using System.Text.RegularExpressions;
using System.Dynamic;
using System.Collections;
using System.Collections.ObjectModel;
using System.Net.Security;
using System.Web;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            WebRequest request = WebRequest.Create("http://www.androidlost.com/androidlost/greet");
            request.Method = "POST";
            request.Headers.Add("Content-Type", "text/x-gwt-rpc; charset=utf-8");
            string postData = "Test";
            byte[] byteArray = Encoding.UTF8.GetBytes(postData);
            request.ContentLength = byteArray.Length;
            Stream dataStream = request.GetRequestStream();
            dataStream.Write(byteArray, 0, byteArray.Length);
            dataStream.Close();
         }
    }
}

2 个答案:

答案 0 :(得分:13)

使用WebRequest.ContentType属性。某些标头只能使用API​​属性进行设置。

编辑:

HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://www.androidlost.com/androidlost/greet");
request.ContentType = "text/x-gwt-rpc; charset=utf-8";

答案 1 :(得分:3)

根据MSDN文档HttpWebRequest.Header Property

使用ContentType属性修改Content-Type。 这需要您将WebRequest转换为HttpWebRequest

HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://www.androidlost.com/androidlost/greet");