如何在RestSharp中发送多形式POST请求?

时间:2015-11-14 13:21:20

标签: c#-4.0 restsharp

我在.net中有以下代码如何使用restsharp发送此多形式请求?

/// This creates a web request stream, and we write POST data here.
/// </summary>
/// <param name="asyncResult"></param>
private static void ConvertImage(Stream photoStream, string photoName)
{
    string multipartBound = Guid.NewGuid().ToString("N");

    HttpWebRequest httpWebRequest = HttpWebRequest.CreateHttp("http://api.ocrapiservice.com/1.0/rest/ocr");
    httpWebRequest.Method = "POST";
    httpWebRequest.ContentType = "multipart/form-data; boundary=" + multipartBound;

    using (Stream stream = httpWebRequest.GetRequestStream())
    {
        UTF8Encoding encoding = new UTF8Encoding();
        string formdata = "--" + multipartBound + "\r\nContent-Disposition: form-data; name=\"language\"\r\n\r\n" + "en" +
            "\r\n--" + multipartBound + "\r\nContent-Disposition: form-data; name=\"image\"; filename=\"" + photoName + "\"" + "\r\n" + "Content-Type: image/"
            + System.IO.Path.GetExtension(photoName).Replace(".", "") + "\r\n\r\n";
        byte[] bytes = encoding.GetBytes(formdata);
        stream.Write(bytes, 0, bytes.Length);

        CopyStream(photoStream, stream);

        formdata = "\r\n--" + multipartBound + "\r\nContent-Disposition: form-data; name=\"apikey\"\r\n\r\n" + "NMUG85hLJ34V" + "\r\n" + multipartBound + "--\r\n";
        bytes = encoding.GetBytes(formdata);
        stream.Write(bytes, 0, bytes.Length);
    }

    var webResponse = httpWebRequest.GetResponse();
    using (Stream stream = webResponse.GetResponseStream())
    {
        StreamReader reader = new StreamReader(stream);
    }
}

1 个答案:

答案 0 :(得分:2)

res/animator
相关问题