标签: httpresponse

Groovy URLConnection 获取 4xx 响应的响应

我有一个 Groovy 脚本,它使用 URLConnection 来处理 GET 请求(在本例中是为了获取身份验证令牌);

URLConnection loginURI = new URL("www.myaddress.fish").openConnection();
loginURI.setRequestProperty("Authorization","me:you");
response = loginURI.getInputStream();
Run Code Online (Sandbox Code Playgroud)

没什么复杂的,当响应为 200 或类似值时,此代码可以正常工作。回复包含我需要取得进展的详细信息。

但是,有时响应是 4xx 响应(最常见的是来自无效授权标头的 400 Bad Request),并且通过 SOAPUI 或类似的方式运行相同的请求,我可以看到响应正文包含有用的信息(例如“您的用户名不正确”) ')。我希望能够捕获有用的信息进行处理,但我不知道该怎么做。

我尝试过传统的“try/catch”想法,但我得到的是 Java 异常而不是响应正文。我愚蠢地尝试了沼泽标准

println response.text
Run Code Online (Sandbox Code Playgroud)

在 catch 部分,但这根本不起作用。假设响应正文存储在某处,我如何读取它?

groovy urlconnection httpresponse http-status-code-400

3
推荐指数
1
解决办法
5686
查看次数

Python的Requests如何处理标头中的多个cookie

我使用 Python Rquests 来提取响应的完整标头。

我想准确计算响应中有多少个 cookie(即 nam/variable)对。有两个问题:

1) 如果服务器响应多个 Set-Cookie 标头。Requests 如何表示这一点?它是否将两个 Set-Cookie 值合并为一?还是保持原样?

这是我打印标题的脚本(完整标题):

import requests
requests.packages.urllib3.disable_warnings() # to disable certificate warnings

response = requests.get("https://example.com",verify=False,timeout=3)
print(str(response.headers))
response_headers = response.headers.get('Set-Cookie')
Run Code Online (Sandbox Code Playgroud)

但是当我查看一些Set-Cookie响应标头时,我发现一些名称/值对用逗号分隔,如下所示:

dnn_IsMobile=False; path=/; secure; HttpOnly, Analytics_VisitorId=aa; expires=Mon 19-Aug-2019 14:20:02 GMT; path=/; secure; HttpOnly, Analytics=SessionId=vv&ContentItemId=-1; expires=Sat 20-Jul-2019 15:20:02 GMT; path=/; secure
Run Code Online (Sandbox Code Playgroud)

2)这是否意味着服务器发送了多个Set-Cookie请求并将它们组合起来?

如果 requests 在 cookie 的名称/值对之间添加逗号,那么它是否总是用逗号后跟空格分隔它们?iecookie1=value, cookie2=value而不仅仅是像 . 这样的逗号cookie1=value,cookie2=value

理解这种差异对我来说非常重要,这样我就能计算出收到的 cookie 的正确数量。

python cookies httpresponse http-headers python-requests

3
推荐指数
1
解决办法
4746
查看次数

如何在Django项目中下载使用python-docx生成的文档?

我正在尝试弄清楚如何在我的 django 应用程序中下载使用 python-docx 生成的 Word 文档(我仍在学习,这是我第一次使用文档);在ajax的帮助下,我将所需的所有信息发送到视图并调用使用该信息并返回文档的函数,然后我尝试将此文档作为响应发送,以便在“下载”的帮助下下载它”按钮(或显示网络浏览器下载对话框)在我提交数据的同一模板中,但这就是我陷入困境的地方。

发送此文档作为响应,以便在我提交数据的同一模板中的“下载”按钮(或显示网络浏览器下载对话框)的帮助下下载它,但这就是我陷入困境的地方。

到目前为止我所拥有的是:

1)在javascript中我发送的信息如下:

data = {
        categoria: cat,
        familia: fam,
        Gcas: gcas,
        FI: FI,
        FF: FF,
        Test: test,
        Grafica: grafica
    },
        $.ajax({
            type: 'post',
            headers: {
                "X-CSRFToken": csrftoken
            },
            url: url,
            data: { json_data: JSON.stringify(data) },

            success: function (response) {
                $('#instrucciones').hide(); //Hide a div with a message 
                $('#btndesc').show(); //Show the button to download the file generated                
            }
        });
    return false;
}
Run Code Online (Sandbox Code Playgroud)

2)在我的Django视图中:

def Documento(request):
    if request.method == "GET":
        context={}
        context['form'] = catForm
        return …
Run Code Online (Sandbox Code Playgroud)

javascript python django httpresponse python-docx

3
推荐指数
1
解决办法
3046
查看次数

如何在 Spring Boot Rest api 响应的 ResponseEntity 中添加自定义属性

Spring Boot 提供了 ResponseEntity 来表示 REST API 的 HTTP 响应,包括 headers、body 和 status。

我的 RestController 包含 getTodoById 方法,如下所示-

@GetMapping("/todo/{id}")
 public Todo getTodoById(@PathVariable String id) {
        int todoId = Integer.parseInt(id);
        Todo todoItem = todoRepository.findById(todoId);
         ResponseEntity.ok(todoItem);
    }
Run Code Online (Sandbox Code Playgroud)

它在 api hit(api/v1/todo/13) 上给出以下 api 响应。

{
    "id": 13,
    "title": "title13",
    "status": "not started"
}
Run Code Online (Sandbox Code Playgroud)

应用程序中的所有 api 都需要有一个通用的自定义响应结构,如下所示:

{
  "status": "success",
  "data": {
    "id": 13,
    "title": "title13",
    "status": "not started"
  },
  "error": null,
  "statusCode": 200
}

{
  "status": "failure",
  "data": {},
  "error": "bad request",
  "statusCode": …
Run Code Online (Sandbox Code Playgroud)

java rest httpresponse spring-boot spring-restcontroller

3
推荐指数
1
解决办法
8002
查看次数

NetSuite - 将文件写入 Suitelet 响应以直接下载文件

希望你能帮忙。一些看似很小的东西却让我心烦意乱!

我在 SuiteScript 2.0 中想要做的就是在 Suitelet 上点击“提交”按钮后立即将 CSV 文件直接下载到客户端。我的代码下载到客户端,但文件中的内容不正确。

以下代码创建文件(成功):

    //creating CSV file
    var fileObj = FILEMODULE.create({
        name: 'ThreePLreport.csv',
        fileType: FILEMODULE.Type.CSV,
        contents: contents
    });  
Run Code Online (Sandbox Code Playgroud)

最后一段代码将文件写入客户端:

   context.response.writeFile(fileObj,true);
Run Code Online (Sandbox Code Playgroud)

现在 - 当我打开文件时,它看起来像这样:

suitelet 的 CSV 文件输出

当我将相同的文件保存在文件柜上时,它看起来是正确的:

在此输入图像描述

我尝试在代码中添加标头,例如:

context.response.addHeader({
        name: 'Content-Type:',
        value: 'text/csv' //text/csv
        });
context.response.addHeader({
        name: 'Content-Disposition',
        value: 'attachment; filename="report1.csv"'
        });
Run Code Online (Sandbox Code Playgroud)

这似乎无助于纠正 CSV 文件内的内容。仍然显示 HTML 代码,如您在上面看到的那样。

有任何想法吗?

提前致谢!

javascript csv httpresponse netsuite suitescript2.0

3
推荐指数
1
解决办法
4878
查看次数

Elsa 工作流程 - Fork(控制流程)

有人可以解释一下 Elsa Workflow 的 Fork 是如何工作的吗?

我已经设置了 HTTP 端点。之后,我发送 HTTP 请求并获得 JSON 格式的 HTTP 响应。我想对该响应设置条件(例如 name='John'),以便我可以仅显示数据库中的该行。

我应该使用什么 Elsa 活动?Fork活动是正确的选择还是其他?

workflow httpresponse httprequest endpoint elsa-workflows

3
推荐指数
1
解决办法
2202
查看次数

NuxtJs - 如何检查 useFetch 响应代码?

使用 NuxtJs 时如何检查响应状态代码useFetch

目前我正在按如下方式处理响应,但我无法在任何地方找到如何获取确切的响应状态代码,只有错误消息,例如FetchError: 403 Forbidden

useFetch(url, options).then(
    (res) => {
        const data = res.data.value;
        const error = res.error.value;

        if (error) {
            console.error(error);
            // handle error
        } else {
            console.log(data);
            // handle success
        }
    },
    (error) => {
        console.error(error);
    }
);
Run Code Online (Sandbox Code Playgroud)

response httpresponse nuxt.js nuxtjs3

3
推荐指数
1
解决办法
5544
查看次数

在HttpEntity响应中呈现的字符不正确

我正在做的小应用程序接收一些带有UTF-8编码的XML,浏览器中的XML非常正确地呈现字符,而在Android中我有一些"垃圾",例如.WÅochy而不是Włochy或Dwójka而不是Dwójka.显然我做错了什么,任何人都可以帮我搞清楚吗?

最好的祝福

String response = EntityUtils.toString( resEntity ).trim();
Log.i( CLASS_NAME, "RESPONSE=" + response );
//This returns response with incorrectly rendered characters eg. WÅochy instead of W?ochy
Run Code Online (Sandbox Code Playgroud)

以下是发送POST请求并接收响应的代码,它在AsyncTask中运行:

protected Document doInBackground(ServiceQuery... queries)
{
    if ( m_sGateway == null ) return null;

    Document result = null;

    try
    {
        HttpClient client = new DefaultHttpClient();

        HttpPost post = new HttpPost( m_sGateway );

        List<NameValuePair> params = new ArrayList<NameValuePair>();
        params.add( new BasicNameValuePair( "mdsXML", queries[0].getQueryString() ) );

        UrlEncodedFormEntity ent = new UrlEncodedFormEntity( params, HTTP.UTF_8 );
        post.setEntity( ent …
Run Code Online (Sandbox Code Playgroud)

android httpresponse utf-8 http-post character-encoding

2
推荐指数
1
解决办法
7499
查看次数

我应该如何构建Response对象,从Symfony2中的DB提供图像/附件?

Symfony2抽象Request和Response对象,我应该如何创建Response对象,为客户端文件附件提供服务以及为浏览器显示图像?

php httpresponse symfony

2
推荐指数
1
解决办法
5195
查看次数

使用WebAPI HttpResponseMessage时下载文件提示

我的API中有一个返回HttpResponseMessage的方法:

    [HttpGet, HoodPeekAuthFilter]
    public HttpResponseMessage GlobalOverview()
    {
        try
        {
            StatsRepo _statsRepo = new StatsRepo();

            string file = _statsRepo.IncidentData().AsCSVString();

            if (file == null)
            {
                return Request.CreateResponse(HttpStatusCode.NoContent);
            }

            HttpResponseMessage result = new HttpResponseMessage(HttpStatusCode.OK);
            result.Content = new StringContent(file);
            result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
            result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment");
            result.Content.Headers.ContentDisposition.FileName = "GlobalOverview.csv";

            return result;
        }
        catch (Exception ex)
        {
            return Request.CreateResponse(HttpStatusCode.InternalServerError);
        }
    }
Run Code Online (Sandbox Code Playgroud)

在我的MVC Web Apllication中,我有一个需要调用API并返回文件的控制器Action:

    [Authorize]
    [HttpGet]
    public HttpResponseMessage GlobalOverview()
    {
        HttpResponseMessage file = new HttpResponseMessage();
        using (HttpClient httpClient = new HttpClient())
        {
            httpClient.DefaultRequestHeaders.Authorization = …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc httpresponse fileresult asp.net-web-api

2
推荐指数
1
解决办法
9533
查看次数