Lấy một gợi ý từ bài đăng này , Tôi nghĩ bạn có thể cần đặt User-Agent
trong yêu cầu JSON của bạn. Thử thêm một dòng trong JSONFunction.makeHttpRequest()
trước khi gọi đến execute()
như:
httpPost.setHeader("User-Agent","Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.81 Safari/537.36");
hoặc trên dòng trước khi gọi setEntity()
bạn có thể làm điều gì đó như:
para.add(new NameValuePair("User-Agent","Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.81 Safari/537.36"));
(Lưu ý:chuỗi tác nhân người dùng này chỉ là một chuỗi mà tôi lấy từ trình duyệt của mình. Bạn có thể sử dụng một chuỗi từ bất kỳ trình duyệt hiện đại nào.)
Điều này sẽ làm cho dịch vụ REST của bạn tin rằng yêu cầu đến từ trình duyệt web. Tôi nghi ngờ rằng đó là nguyên nhân có thể gây ra lỗi 403, tức là máy chủ web của bạn không biết loại tác nhân mà yêu cầu đến từ. Về lý do tại sao nó chỉ ngừng hoạt động, có lẽ máy chủ nơi dịch vụ PHP của bạn đang chạy đã được cập nhật gần đây để nó không chấp nhận các yêu cầu mà tác nhân người dùng không được khai báo.