Lỗi phân tích JSON thường là lỗi ở bước sử dụng phản hồi, không mô tả đầy đủ điều đã xảy ra trên đường request. Trước khi retry hoặc đổi IP, xem ứng dụng thực nhận dữ liệu gì.
Đọc phản hồi theo thứ tự
- Kiểm tra request có phản hồi HTTP hay bị lỗi kết nối.
- Đọc status và URL cuối nếu có redirect.
- Đọc Content-Type theo hợp đồng API.
- Kiểm tra một mẫu nội dung nhỏ đã che dữ liệu.
- Chỉ parse bằng định dạng phù hợp và xử lý lỗi có kiểm soát.
Content-Type mô tả loại nội dung theo RFC 9110. Header cũng có thể cấu hình sai, nên cần đối chiếu hợp đồng và nội dung thực; không coi nó là bảo đảm dữ liệu JSON hợp lệ.
HTML có thể đến từ đâu?
Trang đăng nhập sau khi phiên hết hạn, route sai, trang lỗi của gateway hoặc một trung gian có thể trả HTML. Mã 200 cuối cùng không xác nhận đây là phản hồi API thành công. Nếu có cơ chế bảo vệ của dịch vụ, xử lý theo luồng chính thức; không tự bỏ qua hoặc né kiểm soát.
Ví dụ minh họa
Client tự theo redirect tới trang đăng nhập rồi cố parse trang đó bằng JSON parser. Đội phát triển nên tách lỗi phiên, kiểm tra URL cuối và sửa xử lý response. Vòng retry liên tục chỉ lặp lại trang đăng nhập, không tự khôi phục quyền.
Thiết kế xử lý lỗi
Không xem lỗi parse là điều kiện retry mặc định. Tách lỗi mạng, HTTP thất bại, loại nội dung không mong đợi và JSON sai định dạng. Với thao tác ghi dữ liệu, tránh gửi lại khi chưa biết lần đầu đã thực hiện hay chưa. Giới hạn log và chỉ giữ thông tin cần thiết.
Log an toàn
HTML có thể chứa thông tin tài khoản; JSON có thể chứa dữ liệu khách hàng. Không ghi nguyên response vào log công khai. Thường có thể báo status, tên loại nội dung, kích thước, request ID và một mẫu đã làm sạch. Cookie và Authorization cần được loại bỏ.
Kiểm thử sau sửa
Dùng dữ liệu thử để kiểm tra phản hồi thành công, phiên hết hạn, route sai và lỗi server. Xác minh ứng dụng đưa thông báo phù hợp mà không lộ nội dung nhạy cảm. Đọc thêm kiểm thử proxy với Postman và lỗi xác thực proxy 407.