将一句话传递给网络服务 URL

Pass a sentence to a webservice URL

我有一个网络服务 URL,我必须在其中传递一个包含空格的值

但网络服务称其为非法

 String path = java.net.URLDecoder.decode((CommonConstants.END_POINT_URL.concat(CommonConstants.DELETE_APPOINTMENT_REASON).replace("{id}", appointmentID).replace("{reason}", reason)),"UTF-8");
            WebTarget target = client.target(path);
            System.out.println(target);

目标打印为:

JerseyWebTarget { http://abc-def/SchServices/api/appointment/51574e11-b794-e411-824b-1cc1de6ebf5a?reason=Test Appointment Reason }

测试和约会之间的空间不允许它访问网络服务。 URL 编码也不起作用....因为它编码完整的东西...请建议

改变

.replace("{reason}", reason))

类似于

.replace("{reason}", URLEncoder.encode(reason, "UTF-8")))

这将为 url 编码空格。格式正确的 URL 中的空格是非法的,并且有两种可能的编码 %20+.