我需要将带有自定义标头的Http请求发送到在PHP上运行的服务器代码。
我使用以下代码:
preparedAddress是字符串url; AuthenticationLine和dateValue也是定义的字符串值。 ' JSON'变量包含准备好的字符串
以下是代码:
client = new HttpClient();
client.MaxResponseContentBufferSize = 256000;
int _TimeoutSec = 90;
client.Timeout = new TimeSpan(0, 0, _TimeoutSec);
string _ContentType = "application/json";
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue(_ContentType));
var uri = new Uri(String.Format(preparedAddress));
System.Net.Http.HttpRequestMessage msgToSend = new HttpRequestMessage(HttpMethod.Post, uri);
//my custom headers
msgToSend.Headers.Add("SN-Authentication", AuthenticationLine);
msgToSend.Headers.Add("SN-Date", dateValue);
var content = new StringContent(json, Encoding.UTF8, "application/json");
content.Headers.ContentType = new MediaTypeHeaderValue(_ContentType);
msgToSend.Content = content;
HttpResponseMessage response;
response = client.SendAsync(msgToSend).Result;
String execResult = response.ReasonPhrase;
在php方面,我有以下获得的数据:
Array (
[HTTP_SN_AUTHENTICATION] => Array ( [0] => my data 1 )
[HTTP_SN_DATE] => Array ( [0] => my data 2 )
未明确设置的其他标头,但我不关心它们。
为什么C#改变了头名?如何使用我定义的名称使C#发送头文件?
答案 0 :(得分:0)
问题在于我的PHP代码,标题处理有一点错误。
我很欣赏使用Fiddler工具的建议。我使用了类似的工具--Postman,并且PHP显示的标题格式与请求是从C#代码发送的格式相同。 PHP框架按预期识别和处理标头。
案件已经结束......