B4X:
Compiling code. 0.08
Compiling layouts code. 0.01
Generating R file. 0.43
Compiling generated Java code. Error
javac 1.6.0_26
src\b4a\example\main.java:225: cannot find symbol
symbol : class requestHTTP
location: class b4a.example.main
public static requestHTTP _ohttp = null;
^
1 error
Can't figure out why I am getting this. Have searched the forum and tried rebuilding the Eclipse config from scratch as suggested but no joy. Occur when I do Dim oHttp As requestHTTP in B4A. My library code.
B4X:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.ProtocolException;
import java.net.URL;
import java.io.InputStreamReader;
import anywheresoftware.b4a.BA.Author;
import anywheresoftware.b4a.BA.IterableList;
import anywheresoftware.b4a.BA.Permissions;
import anywheresoftware.b4a.BA.ShortName;
import anywheresoftware.b4a.BA.Version;
import anywheresoftware.b4a.objects.collections.Map;
@ShortName("requestHTTP")
@Permissions(values = {"android.permission.INTERNET"})
@Author("KeirS")
@Version(1)
public class requestHTTP {
/**
* Simple one line Http Request
*For GET requests pass null to the postData parameter
*If you do not have headers pass null to the header parameter
*/
public static String HttpsRequestUrl(String Url,String requestType, Map Header,String postData, String contentType ) throws IOException {
HttpURLConnection reqConnection = null;
OutputStreamWriter writeRequest = null;
BufferedReader readResponse = null;
StringBuilder sb = null;
String line = null;
URL serverAddress = null;
try {
serverAddress = new URL(Url);
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
reqConnection = (HttpURLConnection)serverAddress.openConnection();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
reqConnection.setAllowUserInteraction(false);
reqConnection.setDoOutput(true);
reqConnection.setRequestProperty("Content-Type",contentType);
try {
reqConnection.setRequestMethod(requestType);
} catch (ProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if (Header != null) {
IterableList addHeaders = Header.Keys();
for (int nCounter = 0 ; nCounter < addHeaders.getSize(); nCounter++) {
reqConnection.addRequestProperty(Header.GetKeyAt(nCounter).toString(),Header.GetValueAt(nCounter).toString());
}
}
reqConnection.connect();
if (postData != null) {
writeRequest = new OutputStreamWriter(reqConnection.getOutputStream());
writeRequest.write(postData);
writeRequest.flush();
}
readResponse = new BufferedReader(new InputStreamReader(reqConnection.getInputStream()));
sb = new StringBuilder();
while ((line = readResponse.readLine()) != null)
{
sb.append(line + '\n');
}
reqConnection.disconnect();
return sb.toString();
}
}
XML file
B4X:
<?xml version="1.0" encoding="UTF-8" ?>
- <root>
<doclet-version-NOT-library-version>1.02</doclet-version-NOT-library-version>
- <class>
<name>requestHTTP</name>
<shortname>requestHTTP</shortname>
<owner>process</owner>
<permission>android.permission.INTERNET</permission>
- <method>
<name>HttpsRequestUrl</name>
<comment>Simple one line Http Request For GET requests pass null to the postData parameter If you do not have headers pass null to the header parameter</comment>
<returntype>java.lang.String</returntype>
- <parameter>
<name>Url</name>
<type>java.lang.String</type>
</parameter>
- <parameter>
<name>requestType</name>
<type>java.lang.String</type>
</parameter>
- <parameter>
<name>Header</name>
<type>anywheresoftware.b4a.objects.collections.Map</type>
</parameter>
- <parameter>
<name>postData</name>
<type>java.lang.String</type>
</parameter>
- <parameter>
<name>contentType</name>
<type>java.lang.String</type>
</parameter>
</method>
</class>
<version>1.0</version>
<author>KeirS</author>
</root>
Any help appreciated.