当前位置:  技术问答>java相关

给分给分!一个小问题

    来源: 互联网  发布时间:2015-06-02

    本文导语:  我写了一个用POST方法向网页送QueryString的小程序!但不知道怎么样都写不上去!! 源码如下: package postwriter; import java.net.*; import java.io.*; class QueryString{   String query;   QueryString(Object name,Object value){   query ...

我写了一个用POST方法向网页送QueryString的小程序!但不知道怎么样都写不上去!!

源码如下:


package postwriter;
import java.net.*;
import java.io.*;

class QueryString{
  String query;
  QueryString(Object name,Object value){
  query = URLEncoder.encode(name.toString()) + "=" + URLEncoder.encode(value.toString());
  }
  
  QueryString(){
  query = "";
  }
  
  
  public synchronized void add(Object name,Object value){
    if(!query.trim().equals("")) query += "&";
query += URLEncoder.encode(name.toString()) + "=" + URLEncoder.encode(value.toString());
  }
  
  public String getString(){
  return query;
  }

}
class FormPoster{
  private URL url;
  private QueryString query = new QueryString();

  FormPoster(URL url) throws IllegalArgumentException{

  if(!url.getProtocol().toLowerCase().startsWith("http")){
      throw new IllegalArgumentException("Posting only works for http URLs");
    }
    this.url = url;
  }

  void add(String name,String value){
    query.add(name,value);
  }

  URL getURL(){
    return this.url;
  }

  
  InputStream post() throws IOException{
    URLConnection uc = url.openConnection();
    uc.setDoOutput(true);

    OutputStreamWriter out = new OutputStreamWriter(uc.getOutputStream(),"ASCII");

    out.write(query.getString());
    out.write("rn");
    out.flush();
    out.close();


    return uc.getInputStream();

  }

}


public class Main {
  public static void main(String[] args) {

  URL url;
  try{
    url = new URL("http://be-ride.acz.jp/bbs");
  }catch(MalformedURLException e){
    System.out.println(e);
    return;
  }

  FormPoster poster = new FormPoster(url);
  poster.add("na","DF");
  poster.add("mail","abc@abc.com");
  poster.add("msg","test");
  

  try{
    InputStream in = poster.post();

    InputStreamReader r = new InputStreamReader(in);
    int ch;

    while((ch=r.read()) != -1){
      System.out.print((char) ch);
    }
    System.out.println();
    in.close();

  }catch(IOException e){
    System.err.println(e);
  }

  }
}

|
修改post方法如下:

  InputStream post() throws IOException{
    URLConnection uc = url.openConnection();
    uc.setDoOutput(true);

DataOutputStream out= new DataOutputStream(uc.getOutputStream());

    

    out.write(query.getString());
    out.write("rn");
    out.flush();
    out.close();


    return uc.getInputStream();

  }

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 我的win2000下端口80自动分给了asp,我想分给resin,改那里呀?
  • 怎么给分给那些回复的人?
  • 在linux中有/usr分区,现在新增一个硬盘,如何将这个硬盘空间分给/usr
  • 如何增加分给Linux的磁盘空间
  • 那里有org.w3c包下载,要具体地址(在线等待,全部分给第一,先来先给)
  • 又是50分,给我提醒,我就给分给你。共一百分!
  • 各位大街:哪儿有Jbuilder5企业版下载。(50分给正确的)
  • huyuefox,谢谢你的代码,这20分给你
  • huyuefox谢谢你的mail,这些分给你
  • 过年了,送分给大家!
  • 节日快乐 敬请有经验或是……(要多少分给多少分)
  • 请大家告诉我教育网中高速下载Mandrake9.0的地方?100分给,谢谢了
  • 高手来看:关于按钮 只要回答正确了,要多少分给多少分 !!!!
  • hycao(海草),你在这个跟一个帖子,我把剩下的100分给你!
  • Solaris怎么进入图形界面(分给先答对的人)
  • 心情好,散分给第一个顶我的~~~~
  • 散分给用debian的朋友
  • EJB的概述,EJB的相关网站?100分给回答最好的
  • "400分给有比较好的字符串比较的算法的朋友"要结帖,想做笔迹保留的不可漏看哦
  • 中国队赢球,特来送分给java的各位兄弟!!!(只限前10名)


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3