Stream.Length抛出NotSupportedException

ras*_*asi 1 c# stream

我正在尝试将数据发布到Restful服务并收到此错误.任何帮助非常感谢.

Length ='dataStream.Length'引发了类型'System.NotSupportedException'的异常

Position ='dataStream.Position'引发了类型'System.NotSupportedException'的异常

这是代码

[WebMethod]
//public static void Main(string output)
public string webPost()
{
    //HttpWebResponse response = null; 
    string output = null;

    // Create a request using a URL that can receive a post. 
    WebRequest request = WebRequest.Create("https://subscribers");
    request.PreAuthenticate = true;
    // Set the Method property of the request to POST.        
    request.Credentials = new NetworkCredential("userid", "password");
    request.Method = WebRequestMethods.Http.Post;

    string EmailAddress = "test@test1.com";
    string FirstName = "first";
    string LastName = "Last";

    StringBuilder Efulfill = new StringBuilder();

    Efulfill.Append("EmailAddress" + HttpUtility.UrlEncode(EmailAddress));
    Efulfill.Append("FirstName" + HttpUtility.UrlEncode(FirstName));
    Efulfill.Append("LastName" + HttpUtility.UrlEncode(LastName));

    byte[] byteData = Encoding.UTF8.GetBytes(Efulfill.ToString());

    request.ContentType = "application/xml;charset=ISO-8859-1";

    request.ContentLength = byteData.Length;

    // Get the request stream.
    Stream dataStream = request.GetRequestStream();
    // Write the data to the request stream.
    dataStream.Write(byteData, 0, byteData.Length);
    // Close the Stream object.
    dataStream.Close();
    // Get the response.
    WebResponse response = request.GetResponse();
    // Display the status.
    Console.WriteLine(((HttpWebResponse)response).StatusDescription);
    // Get the stream containing content returned by the server.
    dataStream = response.GetResponseStream();
    // Open the stream using a StreamReader for easy access.
    StreamReader reader = new StreamReader(dataStream);
    // Read the content.
    string responseFromServer = reader.ReadToEnd();
    // Display the content.
    Console.WriteLine(responseFromServer);
    // Clean up the streams.
    reader.Close();
    dataStream.Close();
    response.Close();
    return output;
}
Run Code Online (Sandbox Code Playgroud)

Woo*_*Moo 5

重复:信息

Reed Copsey通过声明"Stream.Length仅适用于可实现搜索的流实现.您通常可以检查Stream.CanSeek是否为真."