C# 尝试检索web响应时出现错误401
每当我尝试“POST”并试图获得响应时,就会收到“401未经授权访问异常”。 我尝试开发的应用程序是自动文本,使用TextNow网站提醒我某些事件 我环顾了一下互联网,发现我应该使用网络凭据来获取响应,但没有用。我在某个地方读到,由于C#中的HTTP交互是如何工作的,它无法识别JSON 401并使用经过身份验证的头重试。我该如何解决这个问题C# 尝试检索web响应时出现错误401,c#,json,httpwebresponse,http-status-code-401,C#,Json,Httpwebresponse,Http Status Code 401,每当我尝试“POST”并试图获得响应时,就会收到“401未经授权访问异常”。 我尝试开发的应用程序是自动文本,使用TextNow网站提醒我某些事件 我环顾了一下互联网,发现我应该使用网络凭据来获取响应,但没有用。我在某个地方读到,由于C#中的HTTP交互是如何工作的,它无法识别JSON 401并使用经过身份验证的头重试。我该如何解决这个问题 namespace HTTPWebTest { public partial class Form1 : Form { public Form1()
namespace HTTPWebTest
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void textBox2_TextChanged(object sender, EventArgs e)
{
}
private void snd_Click(object sender, EventArgs e)
{
string pnum = number.Text;
string msg = text.Text;
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(new Uri("https://www.textnow.com/api/users/[redacted username]/messages"));
WebResponse response = null;
NetworkCredential netCredential =
new NetworkCredential("[redacted username]", "[redacted password]");
req.Credentials = netCredential;
req.PreAuthenticate = true;
req.Method = "GET";
response = (HttpWebResponse)req.GetResponse(); //error occurs here <<<<<<<<<<<
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
req.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13";
req.Referer = "https://www.textnow.com/api/users/[redacted username]/messages";
req.AllowAutoRedirect = true;
req.KeepAlive = true;
req.ContentType = "application/json";
StringBuilder postData = new StringBuilder();
postData.Append("%7B%22contact_value%22%3A%22" + pnum + "%22%2C");
postData.Append("%22contact_type%22%3A2%2C");
postData.Append("%22message%22%3A%22" + msg + "%22%2C");
postData.Append("%22read%22%3A1%2C");
postData.Append("%22message_direction%22%3A2%2C");
postData.Append("%22message_type%22%3A1%2C");
postData.Append("%22date%22%3A%22Sat+Nov+30+2013+13%3A20%3A44+GMT-0800+(Pacific+Standard+Time)%22%2C");
postData.Append("%22from_name%22%3A%22[Redacted]%22%7D");
StreamWriter sw = new StreamWriter(req.GetRequestStream());
sw.Write(postData.ToString());
response = (HttpWebResponse)req.GetResponse();
}
}
}
命名空间HTTPWebTest
{
公共部分类Form1:Form
{
公共表格1()
{
初始化组件();
}
私有void textBox2_TextChanged(对象发送方,事件参数e)
{
}
私有无效snd_单击(对象发送者,事件参数e)
{
字符串pnum=number.Text;
字符串msg=text.text;
HttpWebRequest req=(HttpWebRequest)WebRequest.Create(新Uri(“https://www.textnow.com/api/users/[修改后的用户名]/messages”);
WebResponse=null;
网络凭证网络凭证=
新的网络凭证(“[修订的用户名]”、“[修订的密码]”);
请求凭证=网络凭证;
req.PreAuthenticate=true;
req.Method=“GET”;
response=(HttpWebResponse)req.GetResponse();//此处发生错误我忘记包含服务器所需的几个自定义头
例如:
req.Headers.Add("Access-Control-Request-Headers","accept, origin, x_session, content-type");
req.Headers.Add("Access-Control-Request-Method","POST");
小提琴手: