Форум программистов, компьютерный форум, киберфорум
Наши страницы
Java: Сети
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
fahtom
1 / 1 / 1
Регистрация: 13.08.2015
Сообщений: 15
1

HTTP Post запрос Java

13.08.2015, 17:49. Просмотров 2074. Ответов 3
Метки нет (Все метки)

Здравствуйте, подскажите в чем проблема? Необходимо реализовать передачу параметров от Клиента Серверу, от клиента параметры улетают, но сервлет похоже не получает их, потому что при получении сообщения от сервлета значение параметра равно null.


Код Клиента

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
public class httpPost {
    private static final String USER_AGENT = "Mozilla/5.0";
 
    public static void main(String[] args) throws Exception {
 
        httpPost http = new httpPost();
        System.out.println("\nTesting 2 - Send Http POST request");
        http.sendPost();
    }
 
        private void sendPost() throws Exception {
 
                String url = "http://localhost:8080/gr-Vers1";
            URL obj = new URL(url);
            HttpURLConnection con = (HttpURLConnection) obj.openConnection();// создание класса URLCONNECTION
            con.setDoOutput(true);
 
            ByteArrayOutputStream byteStream=new
                    ByteArrayOutputStream(400);
            PrintWriter out=new PrintWriter(byteStream,true);
            String xml="urlParameters=blabla&sd=2";
            out.write(xml);
            out.flush();
 
                //add reuqest header
            con.setRequestMethod("POST");
            con.setRequestProperty("User-Agent", USER_AGENT); //установка свойств запроса
            con.setRequestProperty("Content-Length", String.valueOf(byteStream.size()));
            con.setRequestProperty("Accept-Language", "en-US,en;q=0.5");//установка свойств запроса
            con.setRequestProperty("Content-Type",
                    "application/x-www-form-urlencoded");
 
            byteStream.writeTo(con.getOutputStream());
            // Send post request
 
            int responseCode = con.getResponseCode(); //получение кода ответа(200)
            System.out.println("\nSending 'POST' request to URL : " + url);
            System.out.println("Post parameters : " + xml);
            System.out.println("Response Code : " + responseCode);
 
            BufferedReader in = new BufferedReader(
                    new InputStreamReader(con.getInputStream()));
            String inputLine;
            StringBuffer response = new StringBuffer();
 
            while ((inputLine = in.readLine()) != null) {
                response.append(inputLine);
            }
 
            System.out.println(response.toString());
 
        }
    }
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public class MainServlet1 extends HttpServlet {
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String s=request.getParameter("sd");
 
        response.setContentType("text;charset=windows-1251");
        PrintWriter out=response.getWriter();
        BufferedReader in=request.getReader();
        FileWriter file=new FileWriter("c://data.txt");
        out.print(s);
        while((s=in.readLine())!=null)
            file.write(s);
        file.close();
        out.println("Ваша информация записана");
        out.close();
    }
 
    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request,response);
    }

Код Сервлета
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.08.2015, 17:49
Ответы с готовыми решениями:

HTTP запрос через Apache HTTP Client ничего не возвращает
У меня есть один сайт. Простой сайт на php. И есть второй сайт, где используется java на JBoss. Я...

Объясните как работает POST запрос в Java
Уважаемые форумчане, не могли бы вы написать простой POST запрос на java с комментариями, какая...

Как из Java-приложения послать POST-запрос с параметрами?
С GET понятно: String s='http://localhost/MyWEB/Page1.asp?p1=1&p2=2&...'; URL url=new URL(s);...

http server,http сервер, post
Необходимо реализовать функцию post для http сервера Косяк как принимать сообщение отправленное -...

Посылка данных на чужой сервер через http post - проблема
Привет! Есть вот такой код: URL url = new URL(hostString); HttpURLConnection urlConnector =...

3
javaBydloCoder
0 / 0 / 0
Регистрация: 05.08.2015
Сообщений: 3
14.08.2015, 02:26 2
Могу ошибаться, я новичек в Java, но, возможно, вам нужно прописать еще
Java
1
con.setDoInput(true);
для получения ответа от сервера.
0
fahtom
1 / 1 / 1
Регистрация: 13.08.2015
Сообщений: 15
14.08.2015, 13:20  [ТС] 3
решение оказалось до банального простым. Протестировав не через java клиент, а через отправку простой формы из браузера, получил сообщение 302, пришёл к выводу, что неправильно задан url адрес на сервлет, после исправления, всё заработало.
0
karakulx
22.08.2015, 22:49     HTTP Post запрос Java
  #4
 Комментарий модератора 
4.6 Обсуждение вопросов - только в теме на форуме. Приглашения к обсуждению еще где-либо (в том числе и с помощью системы личных сообщений) запрещены, за исключением коммерческих разделов.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.08.2015, 22:49
Привет! Вот еще темы с ответами:

Java HTTP сервер
Здравствуйте. Тема очень распространенная, и есть множество решений. Первое, это на сокетах:...

Http сервер на java
Добрый день. Есть вот такой код после исполнения которого по ссылке localhost:9091 открывается html...

Java. Код HTTP запроса
Как получить код у запроса HTTP?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.