相关疑难解决方法(0)

带请求正文的HTTP GET

我正在为我们的应用程序开发一个新的RESTful Web服务.

在某些实体上执行GET时,客户端可以请求实体的内容.如果他们想要添加一些参数(例如排序列表),他们可以在查询字符串中添加这些参数.

或者,我希望人们能够在请求正文中指定这些参数. HTTP/1.1似乎没有明确禁止这一点.这将允许他们指定更多信息,可以更容易指定复杂的XML请求.

我的问题:

  • 这完全是一个好主意吗?
  • HTTP客户端在GET请求中使用请求主体会有问题吗?

http://tools.ietf.org/html/rfc2616

rest http http-get

1896
推荐指数
19
解决办法
98万
查看次数

无法使用此动词类型发送内容正文

我刚刚在我的.NET 2.0应用程序中运行此异常(ProtocolViolationException)(在Windows Mobile 6标准仿真器上运行).令我困惑的是,据我所知,我没有添加任何内容正文,除非我无意中以某种方式完成了它.我的代码如下(非常简单).还有什么我需要做的是说服.NET这只是一个http GET吗?

谢谢,布莱恩

//run get and grab response
WebRequest request = WebRequest.Create(get.AbsoluteUri + args);
request.Method = "GET";
Stream stream = request.GetRequestStream();           // <= explodes here
XmlTextReader reader = new XmlTextReader(stream);
Run Code Online (Sandbox Code Playgroud)

.net webrequest

90
推荐指数
2
解决办法
15万
查看次数

Spring RestTemplate - 带请求正文的http GET

可能重复:
带请求正文的HTTP GET

我在这里看过几个不提倡通过HTTP GET发送内容的讨论.可以通过客户端(Web浏览器)发送的数据大小有限制.处理GET数据也取决于服务器.请参阅 以下资源部分.

但是,我被要求测试使用RestTemplate通过HTTP GET发送内容的可能性.我在春季论坛上几乎没有讨论,但没有回答.(请注意通过http Post发送数据工作正常).这里的讨论建议使用POST.

dev env - JBoss AS 5.1,Spring 3.1.3

客户

    @Test
public void testGetWithBody()
{
    // acceptable media type
    List<MediaType> acceptableMediaTypes = new ArrayList<MediaType>();
    acceptableMediaTypes.add(MediaType.TEXT_PLAIN);

    // header
    HttpHeaders headers = new HttpHeaders();
    headers.setAccept(acceptableMediaTypes);

    // body
    String body = "hello world";
    HttpEntity<String> entity = new HttpEntity<String>(body, headers);

    Map<String, Object> uriVariables = new HashMap<String, Object>();
    uriVariables.put("id", "testFile");

    // Send the request as GET
    ResponseEntity<String> result = restTemplate.exchange(
            "http://localhost:8080/WebApp/test/{id}/body",
            HttpMethod.GET, entity, String.class, …
Run Code Online (Sandbox Code Playgroud)

get http

15
推荐指数
1
解决办法
5万
查看次数

测试以对象作为参数的GET请求(Asp.NET WebApi控制器)

我被指派为应用程序开发WebAPI控制器(我之前从未使用过的东西).一切都很顺利,有一些基本的请求,如GetAllUsers(int id)只是出于测试原因 - 配置本身很好.

现在这是问题所在.我有一种方法 GetAllItems(Carrier carrier),其中Carrier是一个具有许多不同参数的类.由于我们已经在数据库中有一些Carrier实例用于测试目的,我尝试过查询数据库,根据ID(GUID)属性选择Carrier实例,但没有结果.

有没有办法在输入参数是对象时测试GET请求,而不是手动测试单个值(例如int ID),测试方法或某种测试输入参数?

编辑:感谢大家的反馈,我的问题的解决方案实际上比我预期的更容易解决.我绝对乐意给予好评的是你,虽然很遗憾我的名声太低这样做(我是新来的StackOverflow),所以我必须要回到在不久的将来的某个时候这样做.干杯:)

c# asp.net asp.net-web-api

12
推荐指数
1
解决办法
1万
查看次数

通过GET进行Mvc Web API复杂对象查询

有没有办法通过"GET"查询web api,但是参数中有复杂的对象?

到目前为止我看到的所有例子似乎都表明我必须使用"POST".但我不想使用"POST",因为这是一个查询,同时我不想要一个带有16个参数的函数,因为它只是尖叫脆弱.

public Product Get(int id, string name, DateTime createdBy, string stockNumber, ... ) 
    { 
          ...
    }
Run Code Online (Sandbox Code Playgroud)

我希望将上述内容转化为:

public Product Get(ProductQuery query) 
    { 
          ...
    }
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点?你如何使HttpClient与上述服务一起工作.

asp.net rest asp.net-mvc-4 asp.net-web-api

10
推荐指数
1
解决办法
6144
查看次数

标签 统计

asp.net ×2

asp.net-web-api ×2

http ×2

rest ×2

.net ×1

asp.net-mvc-4 ×1

c# ×1

get ×1

http-get ×1

webrequest ×1