Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[jetty-dev] Fwd: Query On jetty Http2Client


Hi Team,

I am stuck in one issue,i am writing stand alone API to send the request using Http2 protocol,but  i want to send the json string using post method, i dont see any API to set the json to string to request object.

Please help on this issue.


Below is my code snippet


public static void main(String args[]) throws Exception{
   String host = "google.com";
   int port = 443;
   
   //client init
   HTTP2Client client = new HTTP2Client();
   SslContextFactory sslContextFactory = new SslContextFactory(true);
   client.addBean(sslContextFactory);
   client.start();       

   //connect init
   FuturePromise<Session> sessionPromise = new FuturePromise<>();
   client.connect(sslContextFactory, new InetSocketAddress(host, port), new ServerSessionListener.Adapter(), sessionPromise);
   Session session = sessionPromise.get(10, TimeUnit.SECONDS);

   //headers init
   HttpFields requestFields = new HttpFields();
 
 
   requestFields.put("User-Agent", client.getClass().getName() + "/" + Jetty.VERSION);

   final Phaser phaser = new Phaser(2);
   

   //multiple request in one connection
   for(int i=0;i<120;i++)
   {
    System.out.println("Count..........."+i);
       MetaData.Request metaData = new MetaData.Request("GET", new HttpURI("https://" + host + ":" + port + "/"), HttpVersion.HTTP_1_1, requestFields);
       //PriorityFrame testPriorityFrame = new PriorityFrame(i, 100+i, 4, true);
      // HeadersFrame headersFrame = new HeadersFrame(0, metaData, null, true);
       
       
HeadersFrame headersFrame = new HeadersFrame(metaData, null, false);
 

       //listen header/data/push frame
      session.newStream(headersFrame, new Promise.Adapter<Stream>(),
new Stream.Listener.Adapter() {
@Override
public void onHeaders(Stream stream, HeadersFrame frame) {

HttpFields fields=frame.getMetaData().getFields();
System.out.println("name ..."+fields.get("User-Agent"));
System.out.println("MetaData..."
+ frame.getMetaData());
System.err.println(frame + "headId:"
+ frame.getStreamId());
if (frame.isEndStream())
phaser.arrive();
}

@Override
public void onData(Stream stream, DataFrame frame,
Callback callback) {
System.out.println("Data..."+ frame.getData().toString());
/* ByteBuffer b=frame.getData();
b.rewind();
while (b.hasRemaining()){
    System.out.println(b.position() + " -> " + b.get()); 
}
*/
   byte[] bytes = new byte[frame.getData().remaining()];
     frame.getData().get(bytes);
System.out.println("[" + stream.getId() + "] DATA " + new String(bytes));
count=count+1;
System.out.println("............ COUN"+count);
System.err.println(frame + "streamid:"
+ frame.getStreamId());
callback.succeeded();
if (frame.isEndStream())
phaser.arrive();
}

@Override
public Stream.Listener onPush(Stream stream,
PushPromiseFrame frame) {
System.err.println(frame + "pushid:"
+ frame.getStreamId());
phaser.register();
return this;
}

   });
   }
   phaser.awaitAdvanceInterruptibly(phaser.arrive(), 5, TimeUnit.SECONDS);

   Thread.sleep(600000);
   client.stop();
}



Back to the top