在发布请求时为WebClient设置正文

Iva*_*n S 6 c# post webclient request

所以我有一个api,我想打电话给.第一个电话是一个呼叫,在请求正文中我需要发送ship_type,piratename和我的piratepass.然后我想读一下我将用于以后的宝贝战利品的回复.

我可以通过网络请求执行此操作.但我觉得有更好的方法来使用webclient.

(我目前在webrequest中这样做)

        //Credentials for the Pirate api
        string piratename = "IvanTheTerrible";
        string piratepass= "YARRRRRRRR";

        string URI = "https://www.PiratesSuperSecretHQ.com/sandyShores/api/respectmyauthority";

        WebRequest wr = WebRequest.Create(URI);

        wr.Method = "POST";
        wr.ContentType = "application/x-www-form-urlencoded";

        string bodyData = "ship_type=BattleCruiser&piratename=" + piratename + "&piratepass=" + piratepass;

        ASCIIEncoding encoder = new ASCIIEncoding();

        byte[] byte1 = encoder.GetBytes(bodyData);

        wr.ContentLength = byte1.Length;
        //writes the body to the request
        Stream newStream = wr.GetRequestStream();

        newStream.Write(byte1, 0, byte1.Length);
        newStream.Close();            

        WebResponse wrep = wr.GetResponse();

        string result;

        using (var reader = new StreamReader(wrep.GetResponseStream()))
        {
            result = reader.ReadToEnd(); // do something fun...
        }
Run Code Online (Sandbox Code Playgroud)

提前谢谢你.

Gla*_*iar 12

你可以用这个简单的代码

Uri uri = new Uri("yourUri");
string data = "yourData";

WebClient client = new WebClient();
var result = client.UploadString(uri, data);
Run Code Online (Sandbox Code Playgroud)

请记住,如果您想要异步,可以使用UploadStringTaskAsync