我想从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();
}
}
}
答案 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");