相关疑难解决方法(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万
查看次数

JQuery,使用GET方法发送JSON对象

我试图使用GET方法发送一个json对象.我的代码:

$.ajax({
           url: "/api/endpoint",
           type: "GET",
           data: {"sort":"date"},
           contentType: "application/json",
           dataType: "json",
           ...
Run Code Online (Sandbox Code Playgroud)

但是,收到的标题将"Content-Length"设置为零,因此服务器上的json解析器不会读取内容.

我已经尝试过设置内容长度标题,但它仍然以0为单位来到服务器:

$.ajax({
           url: "/api/endpoint",
           headers: {"CONTENT_LENGTH",JSON.stringify({"sort":"date"}).length},
           type: "GET",
           data: {"sort":"date"},
           contentType: "application/json",
           dataType: "json",
           ...
Run Code Online (Sandbox Code Playgroud)

知道如何让这个工作吗?它必须得到GET请求.

ajax jquery json

29
推荐指数
3
解决办法
8万
查看次数

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 请求中的 `req.body` 始终为空

我使用的是 Express 4.13.3,并且req.body在 GET 请求中 my 始终为空。它填充了 POST 请求的正确数据。为什么是这样?我在 Express 文档中找不到任何关于此差异的参考。

我的 Express 配置:

function onError(err, req, res, next) { // eslint-disable-line no-unused-vars
  // The error id is attached to `res.sentry` to be returned
  // and optionally displayed to the user for support.
  res.statusCode = 500; // eslint-disable-line no-param-reassign
  res.end(`${res.sentry}\n`);
}

const render = require('../public/assets/SSR');

const app = express();

// sentry.io
app.use(raven.middleware.express.requestHandler(process.env.SENTRY_DSN));

const db = connectDb();

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true })); // for parsing application/x-www-form-urlencoded
app.use(cookieParser());

if (process.env.NODE_ENV …
Run Code Online (Sandbox Code Playgroud)

rest get express

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

标签 统计

get ×2

http ×2

rest ×2

ajax ×1

express ×1

http-get ×1

jquery ×1

json ×1