[Java] Postrequests sturen in java?

Pagina: 1
Acties:

  • reskobon
  • Registratie: November 2001
  • Laatst online: 28-08 13:24
Ik ben een programma aan het maken om requests te sturen.
Dus:

Kan iemand mij helpen met het opstellen van een http post-request die postvariabelen meestuurd, dit wil ik gebruiken voor in een java programmaatje.
Hier kan ik dus dmv println() verschillende regels naar mijn webserver sturen.

Ook snap ik niet welke tekens er aan het eind van iedere regel moeten, dus is dat \r\n of gewoon \n. kan iemand mij hierbij helpen?

Hoop dat het een beetje duidelijk is.....

Leeg


  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Drie mogelijkheden:

1. Zelf HTTP protocol bekijken en simpelweg de request over een Socket sturen (af te raden)

2. Je kan requests versturen met de HttpURLConnection in java.net (mogelijk).

3. Je kan een betere client library gebruiken voor HTTP (aan te raden). Ik ga zelf de HTTP client van Apache Commons toepassen. Ik moet er nog concreet mee aan de slag, maar ik verwacht dat het erg goed gaat werken.

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • reskobon
  • Registratie: November 2001
  • Laatst online: 28-08 13:24
Kijk het was even wachten op een reactie maar nu hebben we een nuttige ook.

Het zal dan wel de laatste optie worden. Heb je hier meer info over misschien of een linkje waar je wat kan vinden?

Leeg


  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
De aanbeveling zelf is een linkje ;) .

Hier dan nog even als zichtbare URL:

http://jakarta.apache.org/commons/httpclient/

Je kan het downloaden, API docs bekijken enzovoorts. Als je eerst even de API docs doorkijkt krijg je een beetje een indruk van de mogelijkheden en je kan het dan ook een beetje vergelijken met de HttpURLConnection.

Alle aanpakken vereisen trouwens wel enige kennis van het HTTP protocol, maar als je al weer wat een POST is, zit je al in de goede richting ;) .

Ik ga hem zelf ook zeer binnenkort toepassen, dus misschien dat ik binnen nu en een paar dagen wel even een voorbeeldje kan posten.

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • reskobon
  • Registratie: November 2001
  • Laatst online: 28-08 13:24
Hum stom |:(

Het is al laat zullen we maar zeggen, maar mocht je een voorbeeld hebben dan zien we dat graag :)

Leeg


  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Ik weet niet of je er al uit bent gekomen maar misschien is het nog zinvol om even mijn ervaringen te melden. Ik wilde eerste aan de slag met de HTTP client van het Jakarta Commons project omdat dat er wel prettig uit zag, maar bij nader inzien vond ik het design toch wel wat slecht en er zaten bovendien nog serieuze functionaliteits problemen in.

Ik ben toen verder gaan kijken en ben uitgekomen op de Http implementaties van het W3C in de Jigsaw. Het design van de client-side Http implementatie is heel erg fraai en compleet. De implementatie is daarnaast uiteraard behoorlijk standaard en degelijk. Na hem een paar dagen gebruikt te hebben in een client-side SOAP lib denk ik dat dit een hele goede keuze is als je iets beter zoekt dan de Http implementatie in de standaard Java API.

Een kleine schets van het gebruik (in dit geval een SOAP request, een simpele GET is nog veel eenvoudiger en je kan nog erg veel weglaten):
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
ByteBuffer buffer = .... // body van de request
Charset charset = Charset.forName("UTF-8");

MimeType requestType = MimeType.TEXT_XML.getClone();
requestType.setParameter("charset", charset.name());

HttpManager manager = HttpManager.getManager();
Request request = manager.createRequest();
request.setMethod("POST") ;
request.setURL(soapRequest.getServiceAddress().toURL());
request.setValue("SOAPAction", '\"' + soapRequest.getAction().toString() + '\"');
request.setContentType(requestType);
result.setContentLength(buffer.capacity());

result.setOutputStream(new ByteBufferInputStream(buffer));

Hier is de site van Jigsaw:
http://www.w3.org/Jigsaw/

Hier kan je de API docs bekijken (org.w3c.www.http en org.w3c.www.protocol.http):
http://jigsaw.w3.org/Doc/Programmer/api/index.html

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment

Pagina: 1