xinli/检查二维码URL的方法.md

188 lines
6.0 KiB
Markdown
Raw Normal View History

# 检查二维码URL的方法
## 方法一:在二维码管理页面查看(推荐)
### 步骤:
1. 登录管理系统
2. 进入"二维码管理"页面
3. 找到要检查的二维码记录
4. 点击"查看二维码"按钮
5. 在二维码预览对话框中,可以看到二维码图片
6. **查看浏览器控制台**
-`F12` 打开开发者工具
- 切换到 `Console`(控制台)标签
- 在控制台中输入以下代码查看二维码URL
```javascript
// 查看当前页面的二维码数据
console.log('二维码列表数据:', document.querySelectorAll('.el-table__body tr'));
```
### 或者直接查看网络请求:
1. 打开浏览器开发者工具F12
2. 切换到 `Network`(网络)标签
3. 刷新二维码管理页面
4. 找到获取二维码列表的请求(通常是 `/psychology/qrcode/list`
5. 查看响应数据,找到 `qrcodeUrl` 字段
6. 或者找到获取二维码图片的请求(通常是 `/psychology/qrcode/image/{qrcodeId}`
7. 查看响应数据中的URL
## 方法二:解码二维码查看内容
### 使用在线工具:
1. 访问在线二维码解码工具,例如:
- https://www.qrcode-monkey.com/qr-code-decoder/
- https://zxing.org/w/decode.jspx
2. 上传二维码图片或输入二维码图片URL
3. 查看解码后的文本内容这就是二维码的URL
### 使用手机扫码:
1. 使用手机扫描二维码
2. 查看手机浏览器地址栏中的URL
3. 检查URL是否正确
- ✅ 正确格式:`http://192.168.1.183/psychology/qrcode/scan/xxx`
- ❌ 错误格式:`http://192.168.1.183:30081//psychology/qrcode/scan/xxx`
## 方法三:检查后端日志
### 步骤:
1. 查看后端控制台日志
2. 找到二维码生成相关的日志
3. 查找包含 `buildServerAddress``buildQrcodeContent` 的日志
4. 查看实际生成的URL
### 添加调试日志(可选):
如果需要更详细的日志,可以在代码中添加:
```java
// 在 PsyQrcodeController.java 的 enrichQrcodeWithBase64() 方法中
String serverAddress = buildServerAddress();
log.info("构建的服务器地址: {}", serverAddress);
// 在 PsyQrcodeServiceImpl.java 的 buildQrcodeContent() 方法中
String content = buildQrcodeContent(qrcode, serverAddress);
log.info("生成的二维码URL: {}", content);
```
## 方法四直接测试URL访问
### 步骤:
1. 从二维码管理页面获取二维码编码(`qrcodeCode`
2. 手动构建URL`http://192.168.1.183/psychology/qrcode/scan/{qrcodeCode}`
3. 在浏览器中直接访问该URL
4. 检查是否能正常访问:
- ✅ 能访问URL正确
- ❌ 不能访问检查URL格式和网络连接
## 方法五:使用浏览器开发者工具检查
### 步骤:
1. 打开二维码管理页面
2.`F12` 打开开发者工具
3. 切换到 `Network`(网络)标签
4. 点击"查看二维码"按钮
5. 在Network标签中找到获取二维码图片的请求
6. 查看请求URL和响应数据
7. 检查响应中的 `qrcodeUrl` 字段
### 或者使用控制台:
在浏览器控制台中输入:
```javascript
// 获取二维码图片的Base64数据
const qrcodeImage = document.querySelector('img[src^="data:image"]');
if (qrcodeImage) {
console.log('二维码图片URL:', qrcodeImage.src);
// Base64数据很长可以截取前100个字符查看
console.log('二维码URL前缀:', qrcodeImage.src.substring(0, 100));
}
```
## 检查URL正确性的标准
### ✅ 正确的URL格式
- `http://192.168.1.183/psychology/qrcode/scan/xxx`
- `http://localhost/psychology/qrcode/scan/xxx`
- 不包含 `:30081` 端口号
- 不包含双斜杠 `//`
- 路径格式正确:`/psychology/qrcode/scan/{qrcodeCode}`
### ❌ 错误的URL格式
- `http://192.168.1.183:30081/psychology/qrcode/scan/xxx`包含30081端口
- `http://192.168.1.183//psychology/qrcode/scan/xxx`(包含双斜杠)
- `http://192.168.1.183:30081//psychology/qrcode/scan/xxx`(包含端口和双斜杠)
## 快速检查脚本
在浏览器控制台中运行以下脚本可以快速检查所有二维码的URL
```javascript
// 检查二维码列表中的URL
fetch('/dev-api/psychology/qrcode/list', {
headers: {
'Authorization': 'Bearer ' + localStorage.getItem('token')
}
})
.then(res => res.json())
.then(data => {
if (data.code === 200 && data.rows) {
console.log('二维码列表:');
data.rows.forEach((qrcode, index) => {
console.log(`${index + 1}. 编码: ${qrcode.qrcodeCode}`);
console.log(` 类型: ${qrcode.qrcodeType}`);
// 如果有qrcodeUrl检查URL格式
if (qrcode.qrcodeUrl) {
const urlMatch = qrcode.qrcodeUrl.match(/http[s]?:\/\/[^"']+/);
if (urlMatch) {
const url = urlMatch[0];
console.log(` URL: ${url}`);
// 检查是否有问题
if (url.includes(':30081')) {
console.warn(' ⚠️ 警告URL包含30081端口');
}
if (url.includes('//')) {
console.warn(' ⚠️ 警告URL包含双斜杠');
}
}
}
});
}
});
```
## 常见问题排查
### 问题1URL包含30081端口
**原因**`buildServerAddress()` 方法没有正确识别后端端口
**解决**:检查后端日志,确认 `serverPort` 是否为30081
### 问题2URL包含双斜杠
**原因**:路径拼接时产生了双斜杠
**解决**:检查 `contextPath` 是否为 `/`,如果是则应该被忽略
### 问题3URL无法访问
**原因**
- URL格式错误
- 网络连接问题
- 前端服务未运行
**解决**
- 检查URL格式
- 确认前端服务运行在80端口
- 确认手机和电脑在同一局域网内
## 推荐检查流程
1. **生成二维码后立即检查**
- 在二维码管理页面查看二维码
- 使用浏览器开发者工具查看网络请求
- 检查URL格式是否正确
2. **测试扫码功能**
- 使用手机扫描二维码
- 检查是否能正常访问
- 查看手机浏览器地址栏中的URL
3. **如果发现问题**
- 检查后端日志
- 重新生成二维码
- 确认修复后再次测试