写了个模拟登陆 oschina的java代码,我现在发带图片的动弹,写不出来了。我模拟不来post提交的图片地址文件,求大神帮帮我。谢谢!
写模拟登陆不是为了发垃圾动弹,只做技术研究!谢谢
/**
* HTTP提交
* @throws IOException
*/
public static Cookie getHTTPPost(HTTPParameter httPParameter) throws Exception{
Cookie cookie=new Cookie();
URL url2 = new URL(httPParameter.getUrl());
HttpURLConnection connection = (HttpURLConnection) url2.openConnection();
connection.setDoOutput(true);// 打开写入属性
connection.setDoInput(true);// 打开读取属性
connection.setReadTimeout(3000);
connection.setConnectTimeout(10000);// 连接超时时间 设置连接主机超时(单位:毫秒)
connection.setReadTimeout(10000);// 设置从主机读取数据超时(单位:毫秒
connection.setInstanceFollowRedirects(false);// 设置是否重定向
if(httPParameter.getReferer()!=null){
connection.addRequestProperty("Referer", httPParameter.getReferer());
}
if(httPParameter.getCookie()!=null){
connection.addRequestProperty("Cookie", httPParameter.getCookie());
}
if(httPParameter.getHost()!=null){
connection.addRequestProperty("Host", httPParameter.getHost());
}
connection.addRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; rv:26.0) Gecko/20100101 Firefox/26.0");
if (httPParameter.getConnection() != null) {
connection.addRequestProperty("Connection", httPParameter.getConnection());
}
if ("POST".equals(httPParameter.getPisG())) {// 判断是get还是post
connection.getOutputStream().write(httPParameter.getParameter().getBytes());
connection.connect();// 提交
} else {
connection.setRequestMethod("GET");// 设置提交方式
connection.connect();// 提交
}
if("IMG".equals(httPParameter.getRetCodeType())){
//取图片数据
if(connection.getInputStream()!=null){
DataInputStream in = new DataInputStream(connection.getInputStream());
DataOutputStream out = new DataOutputStream(new FileOutputStream("d://验证码.jpg"));
//将参数savePath,即将截取的图片的存储在本地地址赋
byte[] buffer = new byte[1024];
int count = 0;
//将输入流以字节的形式读取并写入buffer
while ((count = in.read(buffer)) > 0) {
out.write(buffer, 0, count);
}
// 关闭输入输出流
out.close();
in.close();
}
}
if("TXT".equals(httPParameter.getRetCodeType())){
// 取数据
if(connection.getInputStream()!=null){
InputStream ins = connection.getInputStream();
if (ins!=null) {
// 读取返回的信息
BufferedReader in = new BufferedReader(new InputStreamReader(ins, "UTF-8"));
StringBuffer line =new StringBuffer();
String tem = "";
while ((tem = in.readLine()) != null) {
line.append(tem);
}
in.close();
cookie.setCode(line.toString());
}
ins.close();
}
}
// 取cookie
if (connection.getHeaderField("Set-Cookie") != null) {
String cookie1 = "";
for (String s : connection.getHeaderFields().get("Set-Cookie")) {
cookie1 += s;
}
cookie.setCookie(cookie1);
}
//重定向地址
if (connection.getHeaderField("Location") != null) {
String Location = "";
for (String s : connection.getHeaderFields().get("Location")) {
Location += s;
}
cookie.setLocation(Location);
}
connection.disconnect();// 关闭
return cookie;
} 写了个模拟登陆 oschina的java代码,我现在发带图片的动弹,写不出来了。我模拟不来post提交的图片地址文件,求大神帮帮我。谢谢! 写模拟登陆不是为了发垃圾动弹,只做技术研究!谢谢
/**
* HTTP提交
* @throws IOException
*/
public static Cookie getHTTPPost(HTTPParameter httPParameter) throws Exception{
Cookie cookie=new Cookie();
URL url2 = new URL(httPParameter.getUrl());
HttpURLConnection connection = (HttpURLConnection) url2.openConnection();
connection.setDoOutput(true);// 打开写入属性
connection.setDoInput(true);// 打开读取属性
connection.setReadTimeout(3000);
connection.setConnectTimeout(10000);// 连接超时时间 设置连接主机超时(单位:毫秒)
connection.setReadTimeout(10000);// 设置从主机读取数据超时(单位:毫秒
connection.setInstanceFollowRedirects(false);// 设置是否重定向
if(httPParameter.getReferer()!=null){
connection.addRequestProperty("Referer", httPParameter.getReferer());
}
if(httPParameter.getCookie()!=null){
connection.addRequestProperty("Cookie", httPParameter.getCookie());
}
if(httPParameter.getHost()!=null){
connection.addRequestProperty("Host", httPParameter.getHost());
}
connection.addRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; rv:26.0) Gecko/20100101 Firefox/26.0");
if (httPParameter.getConnection() != null) {
connection.addRequestProperty("Connection", httPParameter.getConnection());
}
if ("POST".equals(httPParameter.getPisG())) {// 判断是get还是post
connection.getOutputStream().write(httPParameter.getParameter().getBytes());
connection.connect();// 提交
} else {
connection.setRequestMethod("GET");// 设置提交方式
connection.connect();// 提交
}
if("IMG".equals(httPParameter.getRetCodeType())){
//取图片数据
if(connection.getInputStream()!=null){
DataInputStream in = new DataInputStream(connection.getInputStream());
DataOutputStream out = new DataOutputStream(new FileOutputStream("d://验证码.jpg"));
//将参数savePath,即将截取的图片的存储在本地地址赋
byte[] buffer = new byte[1024];
int count = 0;
//将输入流以字节的形式读取并写入buffer
while ((count = in.read(buffer)) > 0) {
out.write(buffer, 0, count);
}
// 关闭输入输出流
out.close();
in.close();
}
}
if("TXT".equals(httPParameter.getRetCodeType())){
// 取数据
if(connection.getInputStream()!=null){
InputStream ins = connection.getInputStream();
if (ins!=null) {
// 读取返回的信息
BufferedReader in = new BufferedReader(new InputStreamReader(ins, "UTF-8"));
StringBuffer line =new StringBuffer();
String tem = "";
while ((tem = in.readLine()) != null) {
line.append(tem);
}
in.close();
cookie.setCode(line.toString());
}
ins.close();
}
}
// 取cookie
if (connection.getHeaderField("Set-Cookie") != null) {
String cookie1 = "";
for (String s : connection.getHeaderFields().get("Set-Cookie")) {
cookie1 += s;
}
cookie.setCookie(cookie1);
}
//重定向地址
if (connection.getHeaderField("Location") != null) {
String Location = "";
for (String s : connection.getHeaderFields().get("Location")) {
Location += s;
}
cookie.setLocation(Location);
}
connection.disconnect();// 关闭
return cookie;
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
用openapi吧 http://www.oschina.net/openapi/docs/tweet_pub######大神,如果用openapi, 模拟提交文件的技术我就没学到了,就没用了,请谅解小的对技术的执着###### 真的还不如试下HttpClient 这个工具包省事很多。。
提交文件模拟一大段字符串,你若HttpConnect的话,可以尝试自己写个简单的文件提交页面,然后把Http Body那段的格式抄一下,查点资料对比下试下就好了 ######不行,还有你说的httpclient什么包的,?不是jdk自带的?###### http://my.oschina.net/action/tweet/insert_img?user=1456141
用这个地址去上传吧。分析一下OSC是用什么上传控件的。
######是的啊- -但是不会上传啊!!妈蛋###### http://yonge812.iteye.com/blog/1477680
一查一大堆啊 ######http://314858770.iteye.com/blog/720456######我收到了惊吓