2013-10-28 38 views
1

我写了一个小应用程序来测试我写的web服务的连接。 我的问题是,我不知道如何改变输入类型的名称。C#REST Webclient输入类型

我的web服务看起来就像这样

if ($_FILES["datei"]["error"] == UPLOAD_ERR_OK) 
    { 
      $tmp_name = $_FILES["datei"]["tmp_name"]; 
      $name = $_FILES["datei"]["name"]; 
      move_uploaded_file($tmp_name, $this->uploads_dir."$name"); 
      return $this->uploads_dir.''.$name; 
    } 

我可以从web浏览器调用它,一切工作正常。

<form action="index.php?action=upload" method="post" enctype="multipart/form-data"> 
<input type="file" name="datei"><br> 
<input type="submit" value="Hochladen"> 
</form> 

但是,如果我从我的C#代码尝试它,它变得难以

public static void UploadFilesToRemoteUrl(string url, string datei) 
    { 
     System.Net.ServicePointManager.Expect100Continue = false; 
     WebClient wc = new WebClient(); 
     byte[] arr = wc.UploadFile(url,"post",datei); 

     System.Text.ASCIIEncoding enc = new System.Text.ASCIIEncoding(); 
     string sr = enc.GetString(arr); 
     MessageBox.Show(sr); 
    } 

上面的代码不直接工作。 我想,当我将<input type="file" name="datei">更改为< input type="file" name="file">它会起作用。

在这里我的问题是否可以在C#中解决这个问题,以便我不必更改PHP代码?

我认为这是一个非常容易的问题,但我不是很熟悉webdevelopment 在此先感谢。

回答

0

我会建议你使用提琴手(http://fiddler2.com/)来查看你准确地通过电线发送什么。您应该比较浏览器发送的消息(正常工作)和您的测试应用程序在C#中发送的消息。

一旦您知道HTTP消息的哪个字段是错误的,您可以尝试在wc对象中更正它。