Problem mit PUT-Kommando

ich_Schmiddy

Mitglied
Hallo!

Ich habe ein sehr spezielles Problem, aber vielleicht kann mir jemand helfen.

Ich will BLAST (ein Programm um DNA-Sequenzen zu vergleichen) von JAVA aus ansteuern. Es gibt dazu ein Interface, laut der Doku (http://www.ncbi.nlm.nih.gov/BLAST/Doc/urlapi.html) muß man um z.B. die Sequenz AGGTTA mit der Datenbank "nr" zu vergleichen folgenden Befehl via HTTP senden:

"http://www.ncbi.nlm.nih.gov/blast/Blast.cgi?QUERY=555\
&DATABASE=nr&HITLIST_SIZE=10&FILTER=L\
&EXPECT=10&FORMAT_TYPE=HTML&PROGRAM=blastn&CLIENT=web\
&SERVICE=plain&NCBI_GI=on&PAGE=Nucleotides\
&CMD=Put"


Ich habe also folgendes gemacht:

//=========
try {

Socket sock = new Socket("www.ncbi.nlm.nih.gov", 80);
PrintStream os = new PrintStream(sock.getOutputStream());

BufferedReader br = new BufferedReader(new InputStreamReader (sock.getInputStream()));

String s = "http://www.ncbi.nlm.nih.gov/blast/Blast.cgi?QUERY=555\\&DATABASE=nr&HITLIST_SIZE=10&FILTER=L\\&EXPECT=10&FORMAT_TYPE=HTML&PROGRAM=blastn&CLIENT=web\\&SERVICE=plain&NCBI_GI=on&PAGE=Nucleotides\\&CMD=Put";

os.println(s);

String temp = br.readLine();
while (temp!=null)
{
System.err.println(temp);
temp = br.readLine();
}

br.close();
os.close();
sock.close();
} catch (IOException e) {
System.err.println(e.toString());
System.exit(1);
}

//======================================

Als Rückgabe sollte man jetzt eigentlich eine HTML-Datei bekommen, die eine Bearbeitungsnummer für den Auftrag enthält, ich bekomme aber immer nur:

==============================
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<HTML><HEAD>
<TITLE>501 Method Not Implemented</TITLE>
</HEAD><BODY>
<H1>Method Not Implemented</H1>
http://www.ncbi.nlm.nih.gov/blast/B...;NCBI_GI=on&amp;PAGE=Nucleotides\&amp;CMD=Put to /index.shtml not supported.<P>
Invalid method in request http://www.ncbi.nlm.nih.gov/blast/B...NCBI_GI=on&amp;PAGE=Nucleotides\\&amp;CMD=Put<P>
</BODY></HTML>
==============================

Irgendwie scheint er meinen Befehl also wohl nicht zu erkennen, weiß vielleicht jemand warum? Probleme könnte es vielleicht mit der Codierung des Befehls geben, ich muß ja zwei "\" machen, sonst kompiliert er ja nicht. Bei der zurückgegebenen Fehlermeldung steht an Stelle des "\&" im Original ein "\&amp;", vielleicht liegt hier der Fehler? Aber wie kann ich das beheben?

Im Voraus vielen Dank für jede Hilfe
 

Neue Beiträge

Zurück