标签: httpresponse

使用node或Express返回JSON的正确方法

因此,可以尝试获取以下JSON对象:

$ curl -i -X GET http://echo.jsontest.com/key/value/anotherKey/anotherValue
HTTP/1.1 200 OK
Access-Control-Allow-Origin: *
Content-Type: application/json; charset=ISO-8859-1
Date: Wed, 30 Oct 2013 22:19:10 GMT
Server: Google Frontend
Cache-Control: private
Alternate-Protocol: 80:quic,80:quic
Transfer-Encoding: chunked

{
   "anotherKey": "anotherValue",
   "key": "value"
}
$
Run Code Online (Sandbox Code Playgroud)

有没有办法在使用node或express的服务器的响应中生成完全相同的主体?显然,可以设置标头并指示响应的内容类型将是"application/json",但是有不同的方式来编写/发送对象.我经常使用的那个是使用以下形式的命令:

response.write(JSON.stringify(anObject));
Run Code Online (Sandbox Code Playgroud)

然而,这有两点可以说是好像是"问题":

  • 我们正在发送一个字符串.
  • 而且,最终没有新的线条特征.

另一个想法是使用命令:

response.send(anObject);
Run Code Online (Sandbox Code Playgroud)

这似乎是基于curl的输出发送一个JSON对象,类似于上面的第一个例子.但是,当在终端上再次使用卷曲时,在身体的末端没有新的线条字符.那么,如何使用node或node/express在最后附加一个新行字符来实际记下这样的内容?

json httpresponse node.js express

405
推荐指数
9
解决办法
64万
查看次数

如何在Java中为Android设置HttpResponse超时

我创建了以下用于检查连接状态的函数:

private void checkConnectionStatus() {
    HttpClient httpClient = new DefaultHttpClient();

    try {
      String url = "http://xxx.xxx.xxx.xxx:8000/GaitLink/"
                   + strSessionString + "/ConnectionStatus";
      Log.d("phobos", "performing get " + url);
      HttpGet method = new HttpGet(new URI(url));
      HttpResponse response = httpClient.execute(method);

      if (response != null) {
        String result = getResponse(response.getEntity());
        ...
Run Code Online (Sandbox Code Playgroud)

当我关闭服务器进行测试时,执行会等待很长时间

HttpResponse response = httpClient.execute(method);
Run Code Online (Sandbox Code Playgroud)

有谁知道如何设置超时以避免等待太久?

谢谢!

java android timeout httpresponse

332
推荐指数
5
解决办法
19万
查看次数

我为什么要使用IHttpActionResult而不是HttpResponseMessage?

我一直在使用WebApi进行开发,并已转移到WebApi2,其中Microsoft引入了一个IHttpActionResult似乎建议用于返回a 的新接口HttpResponseMessage.我对这个新接口的优点感到困惑.这似乎主要是公正提供SLIGHTLY更简单的方法来创建一个HttpResponseMessage.

我认为这是"为抽象而抽象"的论点.我错过了什么吗?除了节省一行代码之外,使用这个新接口可以获得什么样的真实优势?

旧方式(WebApi):

public HttpResponseMessage Delete(int id)
{
    var status = _Repository.DeleteCustomer(id);
    if (status)
    {
        return new HttpResponseMessage(HttpStatusCode.OK);
    }
    else
    {
        throw new HttpResponseException(HttpStatusCode.NotFound);
    }
}
Run Code Online (Sandbox Code Playgroud)

新方式(WebApi2):

public IHttpActionResult Delete(int id)
{
    var status = _Repository.DeleteCustomer(id);
    if (status)
    {
        //return new HttpResponseMessage(HttpStatusCode.OK);
        return Ok();
    }
    else
    {
        //throw new HttpResponseException(HttpStatusCode.NotFound);
        return NotFound();
    }
}
Run Code Online (Sandbox Code Playgroud)

c# httpresponse asp.net-web-api

312
推荐指数
6
解决办法
19万
查看次数

从Web Api控制器返回http状态代码

我正在尝试在web api控制器中返回未针对GET方法修改的304的状态代码.

我成功的唯一方法是这样的:

public class TryController : ApiController
{
    public User GetUser(int userId, DateTime lastModifiedAtClient)
    {
        var user = new DataEntities().Users.First(p => p.Id == userId);
        if (user.LastModified <= lastModifiedAtClient)
        {
             throw new HttpResponseException(HttpStatusCode.NotModified);
        }
        return user;
    }
}
Run Code Online (Sandbox Code Playgroud)

这里的问题是它不是一个例外,它只是没有修改,所以客户端缓存是好的.我还希望返回类型是User(因为所有web api示例都显示为GET)不返回HttpResponseMessage或类似的东西.

c# httpresponse http-status-codes asp.net-web-api

213
推荐指数
9
解决办法
25万
查看次数

.NET:使用数据和读取响应发送POST的最简单方法

令我惊讶的是,从.NET BCL中我可以看出,我无法做到这么简单.

byte[] response = Http.Post
(
    url: "http://dork.com/service",
    contentType: "application/x-www-form-urlencoded",
    contentLength: 32,
    content: "home=Cosby&favorite+flavor=flies"
);
Run Code Online (Sandbox Code Playgroud)

上面的假设代码使用数据进行HTTP POST,并从Post静态类的方法返回响应Http.

既然我们没有这么容易,那么下一个最佳解决方案是什么?

如何发送带有数据的HTTP POST并获取响应的内容?

.net c# http httpresponse http-post

177
推荐指数
8
解决办法
44万
查看次数

使用IHttpActionResult返回内容以获得非OK响应

对于从Web API 2控制器返回,如果响应正常(状态200),我可以返回带有响应的内容,如下所示:

    public IHttpActionResult Get()
    {
        string myResult = ...
        return Ok(myResult);
    }
Run Code Online (Sandbox Code Playgroud)

如果可能的话,我想在可能的情况下使用内置的结果类型:https://msdn.microsoft.com/en-us/library/system.web.http.results(v = vs.118).aspx

我的问题是,对于另一种类型的响应(不是200),如何用它返回消息(字符串)?例如,我可以这样做:

    public IHttpActionResult Get()
    {
       return InternalServerError();
    }
Run Code Online (Sandbox Code Playgroud)

但不是这个:

    public IHttpActionResult Get()
    {
       return InternalServerError("Message describing the error here");
    }
Run Code Online (Sandbox Code Playgroud)

理想情况下,我希望将其推广,以便我可以使用IHttpActionResult的任何实现发回消息.

我是否需要这样做(并构建我自己的响应消息):

    public IHttpActionResult Get()
    {
       HttpResponseMessage responseMessage = ...
       return ResponseMessage(responseMessage);
    }
Run Code Online (Sandbox Code Playgroud)

或者,还有更好的方法?

c# httpresponse asp.net-web-api

177
推荐指数
8
解决办法
21万
查看次数

Pragma和Cache-control标头之间的区别?

我在维基百科上读到了Pragma标题,其中说:

"Pragma:no-cache标头字段是用于请求的HTTP/1.0标头.它是浏览器告诉服务器和任何中间缓存它需要新资源的一种手段,而不是服务器告诉浏览器不要缓存资源.一些用户代理确实在响应中注意这个头,但HTTP/1.1 RFC专门警告不要依赖这种行为."

但我还不明白它的作用?是什么之间的差异Cache-Control,其值是头no-cachePragma其值也no-cache

protocols http httpresponse request http-headers

157
推荐指数
3
解决办法
16万
查看次数

使用Request.CreateResponse进行ASP.NET WebApi单元测试

我正在尝试为我的ApiController编写一些单元测试并遇到一些问题.有一个很好的扩展方法叫做Request.CreateResponse,可以帮助生成响应.

public HttpResponseMessage Post(Product product)
{
  var createdProduct = repo.Add(product);
  return this.Request.CreateResponse(HttpStatusCode.Created, createdProduct);
}
Run Code Online (Sandbox Code Playgroud)

有没有办法在不使用部分模拟或直接使用"new HttpResponseMessage(...)"的情况下模拟CreateResponse?

c# unit-testing mocking httpresponse asp.net-web-api

144
推荐指数
3
解决办法
5万
查看次数

HTTP响应头中内容处置的使用

我发现以下asp.net代码在从数据库提供文件时非常有用:

Response.AppendHeader("content-disposition", "attachment; filename=" + fileName);
Run Code Online (Sandbox Code Playgroud)

这允许用户将文件保存到他们的计算机,然后决定如何使用它,而不是尝试使用该文件的浏览器.

使用内容处置响应标头还可以做些什么?

http httpresponse httpwebresponse content-disposition http-headers

122
推荐指数
4
解决办法
21万
查看次数

在烧瓶中返回HTTP状态代码201

我们正在使用Flask作为我们的API之一,我只是想知道是否有人知道如何返回HTTP响应201?

对于像404这样的错误,我们可以致电:

from flask import abort
abort(404)
Run Code Online (Sandbox Code Playgroud)

但对于201,我得到了

LookupError:201也不例外

我是否需要创建自己的例外,像这样的文档?

python httpresponse flask

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