解决发送get Url请求过来的数据被自动转义问题

本文介绍了一种解决通过WebSocket发送JSON数据时,由于浏览器自动URL编码导致的解析问题。在前端,将Map对象转换为JSON字符串,并在后台通过URLDecoder.decode()方法进行解码,以正确解析JSON内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

只提供部分的js以及后台代码,我这边首先把值放到map当中,然后把map转为json字符串,通过websocket,发送数据到后台,浏览器默认会把字符串数据进行转义,这时候需要得到转义前的json字符串

就需要在后台进行转码,得到前台传过来的完整json字符串

String deurl= URLDecoder.decode(shiftMessage,"UTF-8");

前台js;

var message1 = '{\"message\":\"'
                + oStr
                + '\",\"chatId\":\"'
                +chatId
                + '\",\"appId\":\"'
                +appId
                + '\",\"nickName\":\"'
                +nickName
                +'\",\"msgType\":\"text\",\"chatCode\":\"'
                +chatCode
                +'\"}';

           var mapObj = new Map();

 

### 如何在接口自动化测试中对GET请求URL进行参数化 在接口自动化测试中,`GET` 请求通常用于从服务器获取资源。为了使 `GET` 请求更加灵活和高效,可以通过参数化的方式动态传递不同的参数组合来验证接口的行为。 以下是基于 Python 的 `requests` 库实现 `GET` 请求 URL 参数化的具体方法: #### 方法一:使用字符串拼接方式 通过将变量嵌入到 URL 中完成参数化操作。 ```python import requests base_url = "http://example.com/api" key = "search_key" value = "parameter_value" # 动态构建完整的 URL url = f"{base_url}?{key}={value}" response = requests.get(url) print(f"Request URL: {response.url}") print(f"Response Status Code: {response.status_code}") print(f"Response Content: {response.text}") ``` 这种方式简单直观,但在处理多个参数时可能显得繁琐[^1]。 --- #### 方法二:利用 `params` 字典 `requests.get()` 支持直接传入一个字典作为查询参数,从而简化多参数场景下的代码复杂度。 ```python import requests base_url = "http://example.com/api" parameters = { "param1": "value1", "param2": "value2", "param3": "value3" } response = requests.get(base_url, params=parameters) print(f"Request URL: {response.url}") # 自动编码并附加参数至 URL 后面 print(f"Response Status Code: {response.status_code}") print(f"Response Content: {response.text}") ``` 此方法不仅易于维护还能够自动处理特殊字符转义问题[^2]。 --- #### 方法三:结合外部配置文件数据库读取参数 当面对大量不同环境或者频繁变化的数据需求时,可以从 JSON 文件或其他存储介质加载所需信息再注入到程序当中去执行相应逻辑动作。 假设有一个名为 config.json 的文件内容如下所示: ```json { "api_base":"http://testserver.local/", "queries":[ {"name":"queryA","age":"30"}, {"name":"queryB","gender":"male"} ] } ``` 那么我们可以这样写我们的脚本: ```python import json import requests with open('config.json') as file: configs = json.load(file) for query in configs['queries']: full_url = f"{configs['api_base']}endpoint?" param_dict = {} for key,value in query.items(): param_dict[key]=value result=requests.get(full_url,params=param_dict) print(result.url,result.content.decode()) ``` 这种方法极大地提高了灵活性与扩展性[^4]。 --- ### 总结 以上三种技术手段各有优劣,在实际项目应用过程中应根据具体情况选择最适合的一种方案实施落地工作。无论是采用何种形式都需要确保最终生成的目标链接符合预期标准并且具备良好的鲁棒特性以应对各种异常状况的发生。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值