Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.09.2013, 16:57   #1
Egor86
Новичок
Джуниор
 
Регистрация: 23.09.2013
Сообщений: 1
По умолчанию HttpPost и http://services.fms.gov.ru/

Доброго времени суток. На Java программирую недавно.. Господа помогите разобраться. Есть задача подключиться к сервису из программы.

1. Почему при просмотре ответа POST в HTML коде не подставляются переданные параметры?
2. Есть подозрение что сравниваются разные капчи. как это проверить и поправить?

подключаюсь и получаю CAPCHA
Код:
    
 public HttpClient httpclient;

CookieStore cookieStore = new BasicCookieStore();
BasicHttpContext localContext = new BasicHttpContext();


private void ConnectHTTPPage() {
    
httpclient = new DefaultHttpClient();

    //********get CAPCHA************* start 
        try {
            HttpGet httpGetCAPCHA = new HttpGet("http://services.fms.gov.ru/services/captcha.jpg");
            HttpResponse ResponseGetCAPCHA;
            ResponseGetCAPCHA = httpclient.execute(httpGetCAPCHA,localContext);
            InputStream ContentGetCAPCHA = ResponseGetCAPCHA.getEntity().getContent();
            BufferedImage imBuff = ImageIO.read(ContentGetCAPCHA);
            LabelCAPCHA.setIcon(new ImageIcon(imBuff));   
        } catch (IOException ex) {
            Logger.getLogger(MainFrame2.class.getName()).log(Level.SEVERE, null, ex);

        }                 
    //********get CAPCHA************* finish
  
}
Отправляю POST запрос
Код:
private void SendCheckPasport() {   
    
    ArrayList params = new ArrayList();
    params.add(new BasicNameValuePair("PASSPORT_SER", "4607"));
    params.add(new BasicNameValuePair("PASSPORT_NUM", "135687"));
    params.add(new BasicNameValuePair("PASSPORT_DATE", ""));
    
    params.add(new BasicNameValuePair("captcha-input", EditCapcha.getText().toString()));
    params.add(new BasicNameValuePair("action", "/info-service.htm") );
    params.add(new BasicNameValuePair("submit", "ОТПРАВИТЬ ЗАПРОС »") );
   
    HttpPost post = new HttpPost("http://services.fms.gov.ru/info-service.htm?sid=2000");
    
     System.out.println("POST executing request " + post.getURI());
    try {
        post.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8));
        try {
            HttpResponse response = httpclient.execute(post, localContext);
            HttpEntity entity = response.getEntity();
            
            if(entity != null)
            {
                System.out.println(" != null ");
                FillEditPane(entity.getContent(),"EP_POST");
                entity.consumeContent();
            }          
        } catch (IOException ex) {
            Logger.getLogger(MainFrame2.class.getName()).log(Level.SEVERE, null, ex);
        
        }                  
    } catch (UnsupportedEncodingException ex) {
        Logger.getLogger(MainFrame2.class.getName()).log(Level.SEVERE, null, ex);
    }   
    }
Процедура вывода ответа на форму
Код:
private void FillEditPane(InputStream content, String EP_NAME) throws UnsupportedEncodingException {
        try {       
    
            BufferedReader reader = new BufferedReader(new InputStreamReader(content, "UTF-8"));
            StringBuilder stringBuilder = new StringBuilder();
            String line = null;
            while ((line = reader.readLine()) != null) {
                stringBuilder.append(line + "\n");    
            }
            
            if(EP_NAME=="EP_GET"){
                EP_GET.setText(stringBuilder.toString());
            }
            if(EP_NAME=="EP_POST"){
                EP_POST.setText(stringBuilder.toString());
            }
                reader.close();
        } catch (IOException ex) {
            Logger.getLogger(MainFrame2.class.getName()).log(Level.SEVERE, null, ex);
        }
        
    }
Egor86 вне форума Ответить с цитированием
Старый 05.11.2013, 05:59   #2
azv88
Новичок
Джуниор
 
Регистрация: 14.04.2009
Сообщений: 2
По умолчанию

если проблема еще актуальна, стуканись в аську 647-755-ноль-пять-ноль..
тоже делаю такой сервис, но проблема в другом.
azv88 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Proxy and Services Paintkiller Работа с сетью в Delphi 0 22.06.2012 15:53
httppost и отображение знака & как знака? maloy_ya Работа с сетью в Delphi 4 12.03.2012 20:47
http server,http сервер, проблемы с post реализация на java snajper_ro Общие вопросы по Java, Java SE, Kotlin 1 23.10.2011 14:25
Analysis Services in C# jas Общие вопросы .NET 0 27.04.2010 10:36
Delphi and Services Garacio_cain Общие вопросы Delphi 2 09.12.2009 18:34