我正在尝试从 C# 调用 [webmethod]。我可以调用接受“字符串”参数的简单网络方法。但是我有一个接受“byte []”参数的网络方法。当我尝试调用它时,我遇到了“500 内部服务器错误”。这是我正在做的一些例子。
可以说我的方法是这样的
[WebMethod]
public string TestMethod(string a)
{
return a;
}
我在C#中使用HttpRequest这样称呼它
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
req.Credentials = CredentialCache.DefaultCredentials;
req.Method = "POST";
// Set the content type of the data being posted.
req.ContentType = "application/x-www-form-urlencoded";
string inputData = "sample webservice";
string postData = "a=" + inputData;
ASCIIEncoding encoding = new ASCIIEncoding();
byte[] byte1 = encoding.GetBytes(postData);
using (HttpWebResponse res = (HttpWebResponse)req.GetResponse())
{
StreamReader sr = new StreamReader(res.GetResponseStream());
string txtOutput = sr.ReadToEnd();
Console.WriteLine(sr.ReadToEnd());
}
这工作得很好。现在我有另一个这样定义的 webmethod
[WebMethod]
public string UploadFile(byte[] data)
我试着这样称呼它
ASCIIEncoding encoding = new ASCIIEncoding();
string postData = "data=abc";
byte[] sendBytes = encoding.GetBytes(postData);
req.ContentLength = sendBytes.Length;
Stream newStream = req.GetRequestStream();
newStream.Write(sendBytes, 0, sendBytes.Length);
但这给了我一个 500 内部错误:(