首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何做一个HTTP Put?

如何做一个HTTP Put?
EN

Stack Overflow用户
提问于 2018-04-17 05:53:31
回答 2查看 0关注 0票数 0

我们有这个软件有一个webservices组件,想通过使用webservices组件将数据导入到系统中。

文档给出了使用HTTP动词(如GET,POST,PUT,DELETE)与系统交互的示例。

我构建了具有method =“post”或method =“get”的HTML表单,并将请求发送给action属性中指定的任何内容(action =“someResource”)。但我不知道该怎么做。

用.net编程。所以,.net中的任何例子都会非常棒。

EN

回答 2

Stack Overflow用户

发布于 2018-04-17 14:43:19

这是一个使用HttpWebRequest的C#示例:

using System;
using System.IO;
using System.Net;

class Test
{
        static void Main()
        {
                string xml = "<xml>...</xml>";
                byte[] arr = System.Text.Encoding.UTF8.GetBytes(xml);
                HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("http://localhost/");
                request.Method = "PUT";
                request.ContentType = "text/xml";
                request.ContentLength = arr.Length;
                Stream dataStream = request.GetRequestStream();
                dataStream.Write(arr, 0, arr.Length);
                dataStream.Close();
                HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                string returnString = response.StatusCode.ToString();
                Console.WriteLine(returnString);
        }
}

现在在System.Net.Http中有一个HttpClient类(可作为NuGet包使用),这使得它更容易一些:

using System;
using System.Net.Http;

class Program
{
    static void Main()
    {
        var client = new HttpClient();
        var content = new StringContent("<xml>...</xml>");
        var response = client.PutAsync("http://localhost/", content).Result;
        Console.WriteLine(response.StatusCode);
    }
}
票数 0
EN

Stack Overflow用户

发布于 2018-04-17 15:30:33

PUT和DELETE可能需要使用AJAX并创建XMLHttpRequests,因为FORM标记仅支持GET和POST动词,而链接仅会发出GET请求。

使用jQuery:

 $.ajax( {
       url: '/controller/action',
       type: 'PUT',
       data: function() { ...package some data as XML },
       dataType: 'xml',
       ... more options...
 );

关于jQuery ajax选项页面的说明警告说,某些浏览器不支持请求类型的PUT和DELETE。我从来没有使用PUT,但在IE和FF中使用了DELETE。尚未在Safari或Opera中进行测试。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100008141

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档