405服务器响应失败,服务器返回HTTP响应代码:405

我需要从第三方Web应用程序UI获取内容,但在登录后,站点会重定向到许多页面。我不了解如何从上次打开的页面检索数据。

目前我接收的in.readLine()方法如果我使用“OPTIONS”而不是GET则返回null。

如果我使用GET然后错误405。

Rest Client通过GET方法显示连接成功,并将其重定向到所需页面。

请建议。

我通过URLConnection连接到url

HttpsURLConnection con = (HttpsURLConnection) new URL("https://***.com/MRcgi/MRhomepage.pl" + "?" + query).openConnection();

Complete code is as follows-

String charset = "UTF-8"; // Or in Java 7 and later, use the constant:

String USER = "*****";

String PROJECTID = "1";

String MRP = "1eba539717f66151f557b49fd7e8a8d28";//dynamically changes

String OPTION = "none";

String WRITECACHE = "1";

String FIRST_TIME_IN_FP = "1";

String FIRST_TIME_IN_PROJ = "1";

String dispatch_script = "MRlogin.pl";

String query = String

.format("USER=%s&PROJECTID=%s&MRP=%s&OPTION=%s&WRITECACHE=%s&FIRST_TIME_IN_FP=%s&FIRST_TIME_IN_PROJ=%s&dispatch_script=%s&",

URLEncoder.encode(USER, charset),

URLEncoder.encode(PROJECTID, charset),

URLEncoder.encode(MRP, charset),

URLEncoder.encode(OPTION, charset),

URLEncoder.encode(WRITECACHE, charset),

URLEncoder.encode(FIRST_TIME_IN_FP, charset),

URLEncoder.encode(FIRST_TIME_IN_PROJ, charset),

URLEncoder.encode(dispatch_script, charset));

HttpsURLConnection con = (HttpsURLConnection) new URL(

"https://***com/MRcgi/MRhomepage.pl" + "?" + query)

.openConnection();

String userPassword = "domain\\user:password";

String encoding = new String(

org.apache.commons.codec.binary.Base64

.encodeBase64(org.apache.commons.codec.binary.StringUtils

.getBytesUtf8(userPassword)));

System.out.println("----" + encoding);

con.setRequestMethod("GET");

con.setRequestProperty("Content-Type", "text/plain");

con.setRequestProperty("charset", "UTF-8");

con.setRequestProperty("Authorization", "Basic " + encoding);

USER=user&MRP=15c6ca083c2f75a73e0fbbd2832290f29&PROJECTID=1&USECACHEURL=1&IGNORE_REAL_ACTIVE_TIME=1";

con.setDoOutput(true);

DataOutputStream wr = new DataOutputStream(con.getOutputStream());

//wr.writeBytes(urlParameters);

wr.flush();

wr.close();

int responseCode = con.getResponseCode();

System.out.println("Response Code : " + responseCode);

BufferedReader in = new BufferedReader(new InputStreamReader(

con.getInputStream()));

String inputLine;

StringBuffer response = new StringBuffer();

System.out.println("-----" + in.readLine());

while ((inputLine = in.readLine()) != null) {

response.append(inputLine);

}

in.close();

System.out.println(response.toString());

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值