Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 创建HttpWebRequest Post请求_C#_.net_Wcf - Fatal编程技术网

C# 创建HttpWebRequest Post请求

C# 创建HttpWebRequest Post请求,c#,.net,wcf,C#,.net,Wcf,我有一个WCF POST方法-如下所示: [OperationContract] [WebInvoke(Method = "POST", UriTemplate = "UploadReport/{customerId}/{author}", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)] string UploadReport(string customerId

我有一个WCF POST方法-如下所示:

    [OperationContract]
    [WebInvoke(Method = "POST", UriTemplate = "UploadReport/{customerId}/{author}", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
    string UploadReport(string customerId, byte[] fileData, string author);
http://localhost/myWS/api/Reference/GetAllCarManufacturers
它用于将报告上载到我正在使用的ECM客户端

我在另一个解决方案中通过将服务引用添加到WSDL来使用WCF客户端调用它。详情如下:

    using (MemoryStream mem = new MemoryStream())
    {
      ExcelReportGenerator excel = new ExcelReportGenerator();

      success = excel.CreateExcelDoc(mem, customerId);
      mem.Position = 0;

      try
      {
        using (CustomerClient.UploadClient customerClient = new CustomerClient.UploadClient())
        {
          customerClient.Endpoint.Binding.SendTimeout = new TimeSpan(0, 10, 0); 
          uploadReportId = customerClient .UploadReport(customerId.ToString(), mem.ToArray(), userId.ToString());
        }

        //remaining code removed from brevity
但是现在我需要从HttpWebRequest而不是使用生成的wcf客户端进行此调用

但是,我想知道如何才能发布字节数组以及客户id和作者

我以前使用过类似下面的东西来实现一个简单的API GetRequest

  string jsonResponse = string.Empty;

  string requestUri = string.Format("{0}", myAPI);

  HttpWebRequest request = (HttpWebRequest)WebRequest.Create(requestUri);
  request.Credentials = new NetworkCredential(userNameWs, passwordWs);

  using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
  {
    Stream dataStream = response.GetResponseStream();
    StreamReader reader = new StreamReader(dataStream);
    jsonResponse = reader.ReadToEnd();
    reader.Close();
    dataStream.Close();
  }
在上面的示例中,myAPI是从配置加载的,如下所示:

    [OperationContract]
    [WebInvoke(Method = "POST", UriTemplate = "UploadReport/{customerId}/{author}", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
    string UploadReport(string customerId, byte[] fileData, string author);
http://localhost/myWS/api/Reference/GetAllCarManufacturers
我知道要让它达到我需要的WCF方法

request.Method = "POST";

要发布文件数据并点击WCF中格式为“UploadReport/{customerId}/{author}

myAPI变量的内容是什么?执行或帮助?