URLConnection想实现不用登陆去访问URL

问题描述

URLConnection想实现不用登陆去访问URL

我访问的这个URL、只能用管理员的权限登陆才能访问,如果用cookie或者session能实现吗?该怎么实现?
public BufferedReader send(String content) {
try {
URLConnection conn = new URL(url).openConnection();
conn.setRequestProperty("Content-Type", contentType);

BASE64Encoder enc = new sun.misc.BASE64Encoder();
String userpassword = "admin" + ":" + "admin";
String encodedAuthorization = enc.encode( userpassword.getBytes() );
conn.setRequestProperty("Authorization", "Basic "+ encodedAuthorization);

if (content != null) {
conn.setRequestProperty("Content-Length", String.valueOf(content.getBytes(charset).length));
}
conn.setDoInput(true);
conn.setDoOutput(true);

if (conn instanceof HttpURLConnection) {
((HttpURLConnection) conn).setRequestMethod(requestMethod_POST);
}

BufferedWriter w = new BufferedWriter(new OutputStreamWriter(conn.getOutputStream(), Charset.forName(charset)));
try {
w.write(content);
} finally {
w.flush();
w.close();
}

return new BufferedReader(new InputStreamReader(conn.getInputStream(), Charset.forName(charset)));

} catch (IOException e) {
throw new RuntimeException(e);
}
}
这种方法会报Exception in thread "main" java.lang.RuntimeException: java.io.IOException: Server returned HTTP response code: 422 for URL: http://192.168.0.18/redmine/time_entries.xml 这个错误,我这是哪里写错了呢
422 - Unprocessable Entity 请求格式正确,但是由于含有语义错误,无法响应.这个错误怎么解决呢 ?请大神们指点!

解决方案

这个xml文件能访问的到吗,,,

解决方案二:

你这个要看服务器是如何验证管理员权限的,比如是cookie,那么你提交的HTTP请求的时候,就要在header中添加对应的cookie信息来进行。不然服务器就会不处理
或者你提交的管理员帐号和密码是否正确,总之需要保证请求的格式是否符合服务器的处理

时间: 2016-01-25

URLConnection想实现不用登陆去访问URL的相关文章

请求-可不可以利用URL路径去访问webservice接口呢?

问题描述 可不可以利用URL路径去访问webservice接口呢? 我想在手机端利用URL访问服务器上的java程序里的webservice接口,应该怎么做呢?请求大神指点.. 解决方案 手机端是什么语言写的. 基于soap ,http 都可以实现你的需求. 解决方案二: 可以使用restful service来构建webservice接口.参考:http://blog.csdn.net/zztfj/article/details/7609347 解决方案三: 如果使用http协议来访问的话,去

怎么实现client通过证书验证去访问cloud serice上的服务

问题描述 怎么实现client通过证书验证去访问cloud serice上的服务 我想让我的客户端的程序通过证书去访问云服务上面的内容,是不是只需要在Azure上使用HTTPS就可以了? 我在MSDN也发帖子了:https://social.msdn.microsoft.com/Forums/zh-CN/2e09aa4b-0e20-42ed-a834-c90937cdf865/clientcloud-serice?forum=windowsazurezhchs 解决方案 先安装 windows

如何用img标签的src属性去访问私有ftp上的图片,而不需要下载到本地

一般情况下我们要访问ftp上的某个文件时,会有以下几个方案 1. 在浏览器的地址栏里输入ftp的ip 例如:ftp//:168.192.0.1 这样就会弹出一个登陆界面,输入用户名,密码即可进入到ftp中. 2.下载一个ftp的可视化桌面应用,输入ip,用户名,密码即可进入到ftp中. 3.现在有这么一个需求,一个BS的项目中,在页面上要访问一个ftp服务器上的图片,但是ftp是私有的,需要登录,起初的想法是,先把图片下载到本地,然后去访问打开,但是这种方案有点麻烦.最后上网查了一下,有一个很简

当使用java-buildpack打包部署的app启动后,如何去访问app部署所在的Tomcat的web控制台?

问题描述 在CloudFoundry上部署一个javaweb应用时,默认会使用CloudFoundry自带的java-buildpack来打包部署该web应用.在使用java-buildpackstageapp时,会先启动Tomcat,然后Tomcat会去自动扫描其部署目录中的war包,部署并启动该web应用.因为应用实例是跑在wardencontainer里的,在外部只能通过warden所在的DEA虚机的ip:port进行对容器内应用的访问(通过DNAT将DEA的ip:port转换成warde

【Filter 不登陆无法访问】web项目中写一个过滤器实现用户不登陆,直接给链接,无法进入页面的功能

在web项目中写一个过滤器实现用户不登陆,直接给链接,无法进入页面,而重定向到登陆界面的功能. 项目是用springMVC+spring+hibernate实现 (和这个没有多大关系) 第一步: 首先写一个登录权限过滤类--LoginFilter类实现Filter接口 1 package com.agen.util; 2 3 import java.io.IOException; 4 5 import javax.servlet.Filter; 6 import javax.servlet.Fi

Oralce 调用Delphi写DLL去访问C# WebService的问题

web|访问|问题 我想从Oracle的存储过程通过一个外部dll(Delphi编写)去访问C#写的WebService时,出现了"尚未调用 CoInitialize"不知道是怎么回事,望各位指点一二.1.我在Oracle里写了一个函数AddNumber如下:CREATE OR REPLACE FUNCTION "MY"."ADD" (a in BINARY_INTEGER,b in BINARY_INTEGER) RETURN BINARY_I

django写的网页我想让别人也能够访问,应该怎么配置地址呢

问题描述 django写的网页我想让别人也能够访问,应该怎么配置地址呢 现在只有连上和我一样的局域网的电脑才能访问.另外现在别人连我的网页是用ip地址连的,我怎么可以改成一个比如www开头的地址让别人连上啊.还请大神不吝赐教. 解决方案 拿自己的电脑作为服务器有如下问题(1)你必须有公网ip,这是起码的,如果没有,肯定不行.(2)公网ip是固定不变的,个人宽带每次拨号ip都不同,即便你一直连着,也因为dhcp租期到期而变化,每次变化,你必须更新dns,否则无法访问了.有花生壳之类的工具可以自动帮

android访问URL指定的资源

问题描述 android操作系统提供3种网络接口供其使用:1.标准的Java接口(最常用的)2.Apache接口3.android网络接口(是Java标准接口的补充)标准的Java接口主要通过URL来定位资源,访问网络资源的基本步骤如下:1.创建URL2.从URL创建URLConnection/HttpURLConnection对象设置连接参数3..连接服务器4.读写服务器数据例1使用Java.net.URLConnection访问URL指定的网络资源URLurl=newURL("网址"

android可否直接调用flash player播放swf文件,而不用webview去加载

问题描述 android可否直接调用flash player播放swf文件,而不用webview去加载 调用的方法如下 public boolean openFlash(String path){ Intent intent = new Intent(); Bundle bundle = new Bundle(); bundle.putString(Define.OPEN_MODE, Define.NORMAL); //打开模式 bundle.putBoolean(Define.SEND_CLO