package cn.yo2.aquarium.testprotobufserver;
import com.example.tutorial.AddressBookProtos.AddressBook;
import com.example.tutorial.AddressBookProtos.Person;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.util.Properties;
public class Main extends NanoHTTPD {
public Main(int port) throws IOException {
super(port, null);
}
@Override
public Response serve(String uri, String method, Properties header, Properties parms, Properties files) {
AddressBook addressBook = getAddressBook();
return new Response(HTTP_OK, "application/x-protobuf", new ByteArrayInputStream(addressBook.toByteArray()));
}
private Person getPerson(String name, int id) {
return Person.newBuilder().setName(name).setId(id).build();
}
private AddressBook getAddressBook() {
AddressBook.Builder builder = AddressBook.newBuilder();
builder.addPerson(getPerson("shaobin", 1));
builder.addPerson(getPerson("haungyu", 2));
return builder.build();
}
public static void main(String[] args) {
int port = 8080;
try {
new Main(port);
} catch (IOException ioe) {
myErr.println("Couldn't start server:\n" + ioe);
System.exit(-1);
}
myOut.println("Now serving files in port " + port);
myOut.println("Hit Enter to stop.\n");
try {
System.in.read();
} catch (Throwable t) {
}
}
}