package jalview.ws;
import java.io.BufferedReader;
+import java.io.File;
import java.io.IOException;
+import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.List;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
+import org.apache.http.entity.mime.HttpMultipartMode;
+import org.apache.http.entity.mime.MultipartEntity;
+import org.apache.http.entity.mime.content.FileBody;
+import org.apache.http.entity.mime.content.InputStreamBody;
+import org.apache.http.entity.mime.content.StringBody;
import org.apache.http.impl.client.DefaultHttpClient;
/**
}
}
+ public static BufferedReader doHttpMpartFilePost(String postUrl,
+ List<NameValuePair> vals, String fparm,File file, String mtype) throws ClientProtocolException,
+ IOException
+ {
+ HttpClient httpclient = new DefaultHttpClient();
+ HttpPost httppost = new HttpPost(postUrl);
+ MultipartEntity mpe = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);
+ for (NameValuePair nvp:vals)
+ {
+ mpe.addPart(nvp.getName(), new StringBody(nvp.getValue()));
+ }
+
+ FileBody fb = new FileBody(file, mtype!=null ? mtype : "application/octet-stream");
+ mpe.addPart(fparm, fb);
+ UrlEncodedFormEntity ue = new UrlEncodedFormEntity(vals, "UTF-8");
+ httppost.setEntity(ue);
+ HttpResponse response = httpclient.execute(httppost);
+ HttpEntity resEntity = response.getEntity();
+
+ if (resEntity != null)
+ {
+ BufferedReader r = new BufferedReader(new InputStreamReader(
+ resEntity.getContent()));
+ return r;
+ }
+ else
+ {
+ return null;
+ }
+ }
+ public static BufferedReader doHttpMpartInputstreamPost(String postUrl,
+ List<NameValuePair> vals, String fparm,String fname, InputStream is, String mtype) throws ClientProtocolException,
+ IOException
+ {
+ HttpClient httpclient = new DefaultHttpClient();
+ HttpPost httppost = new HttpPost(postUrl);
+ MultipartEntity mpe = new MultipartEntity(HttpMultipartMode.STRICT);
+ for (NameValuePair nvp:vals)
+ {
+ mpe.addPart(nvp.getName(), new StringBody(nvp.getValue()));
+ }
+
+ InputStreamBody fb = (mtype!=null) ? new InputStreamBody(is, fname, mtype) : new InputStreamBody(is, fname);
+ mpe.addPart(fparm, fb);
+ UrlEncodedFormEntity ue = new UrlEncodedFormEntity(vals, "UTF-8");
+ httppost.setEntity(ue);
+ HttpResponse response = httpclient.execute(httppost);
+ HttpEntity resEntity = response.getEntity();
+
+ if (resEntity != null)
+ {
+ BufferedReader r = new BufferedReader(new InputStreamReader(
+ resEntity.getContent()));
+ return r;
+ }
+ else
+ {
+ return null;
+ }
+ }
}
--- /dev/null
+package jalview.ws;
+
+import static org.junit.Assert.*;
+import jalview.datamodel.AlignmentI;
+import jalview.datamodel.SequenceI;
+import jalview.ws.seqfetcher.DbSourceProxy;
+
+import java.util.List;
+
+import org.junit.Before;
+import org.junit.Test;
+
+public class PDBSequenceFetcherTest
+{
+
+ @Before
+ public void setUp() throws Exception
+ {
+ }
+
+ @Test
+ public void testRnaSeqRetrieve() throws Exception
+ {
+ List<DbSourceProxy> sps = new SequenceFetcher(false)
+ .getSourceProxy("PDB");
+ AlignmentI response = sps.get(0).getSequenceRecords("2GIS");
+ assertTrue(response!=null);
+ assertTrue(response.getHeight()==1);
+ for (SequenceI sq:response.getSequences())
+ {
+ assertTrue("No annotation transfered to sequence.",sq.getAnnotation().length>0);
+ assertTrue("No PDBEntry on sequence.",sq.getPDBId().size()>0);
+ assertTrue("No RNA annotation on sequence.", sq.getRNA()!=null);
+ }
+ }
+
+}