0

ファイルを AtTask にアップロードしようとしていますが、引き続き不正な引数の例外が発生します。ドキュメントを読み、正しいコードを持っていると信じていますが、動作させることができません。AtTask にファイルをアップロードするための C# コードが動作している人はいますか? 以下は参照用の私のコードです:

        BinaryReader br = new BinaryReader(fs);
        int bufferSize = 40960; //Amount of data that to be read from file(in bytes)
        byte[] buffer = br.ReadBytes(bufferSize);//reading the bytes
        string str = Convert.ToBase64String(buffer);

        string boundary = "----MyAppBoundary" + DateTime.Now.Ticks.ToString("x");

        var request = (HttpWebRequest)WebRequest.Create(fullUrl);
        request.ContentType = "multipart/form-data; boundary=" + boundary;
        request.Method = "POST";

        using (var requestStream = request.GetRequestStream())
        using (var writer = new StreamWriter(requestStream))
        {
            writer.WriteLine(string.Format("Content-Disposition: form-data; name=\"{0}\"", "uploadedFile"));
            writer.WriteLine();
            writer.WriteLine(str);                
        }

        using (WebResponse response = request.GetResponse())
        {
            using (Stream responseStream = response.GetResponseStream())
            {
                return ReadResponse(responseStream);
            }
        }
4

1 に答える 1

0

文字セットを明示的に指定していることを確認してください (私は常に UTF-8 を使用しています)。私は AtTask API 経由で C# のアップロードを行ったことはありませんが、(実稼働システムで機能する) Java サンプルがあれば役に立ちます。文字セットを指定するために使用する簡単なサンプルを次に示します。

writer.append("Content-Disposition: form-data; name=\"" + name + "\"")
      .append(LINE_FEED);
writer.append("Content-Type: text/plain; charset=UTF-8")
      .append(LINE_FEED);
于 2014-06-23T22:28:19.417 に答える