需要Android HTTP POST帮助

时间:2012-06-02 16:06:39

标签: http

Hallo给stackoverflow的所有成员。

我是Android开发新手,有人可以告诉我如何在网站上发布数据或给我一个采样器吗?

我希望将哈希发布到在线破解者中,并将结果作为字符串返回。

edit_box = enter the hash

sendbutton =发送哈希值 text_view = resuld

http://xdecrypt.com/# 感谢

编辑:我看看@ Live标题,发现了这个结果 http://xdecrypt.com/ajax/liste.php?hash=759fdfa1a99563aa6309bb6ae27537c564547f62

这里我们可以将哈希添加到Url中,结果是。

document.getElementById('hashresult').value="";document.getElementById('hashresult').value+="759fdfa1a99563aa6309bb6ae27537c564547f62(MySQL)=amande1975 ";

现在我想把它读作字符串任何人都可以帮忙吗?

我想显示Hashtype MySQL和密码amande1975。 并在ui上将其显示为text_view。

再次感谢。

编辑:2它的作品但是现在如何拆分字符串?有人可以帮忙吗?

          try {
            String webPage = "http://xdecrypt.com/ajax/liste.php?hash="+hashedit.getText().toString();
            URL url = new URL(webPage);
            URLConnection urlConnection = url.openConnection();
            InputStream is = urlConnection.getInputStream();
            InputStreamReader isr = new InputStreamReader(is);

            int numCharsRead;
            char[] charArray = new char[1024];
            StringBuffer sb = new StringBuffer();
            while ((numCharsRead = isr.read(charArray)) > 0) {
                sb.append(charArray, 0, numCharsRead);
            }
            String result = sb.toString();

            System.out.println("*** BEGIN ***");
            System.out.println(result);
            System.out.println("*** END ***");

            TextView tv2 = (TextView) findViewById(R.id.textView2);
            tv2.setText("HashResuld="+sb.toString());

EDIT3:它的作品;)

再次感谢您的帮助;)

1 个答案:

答案 0 :(得分:0)

之前我做过一些研究,ksoap2有能力使用webservice网址进行数据传输,我相信它还有其他可以使用的http功能。

http://ksoap2.sourceforge.net/

下载ksoap2并导入您的项目并创建服务访问层:

import java.util.ArrayList;
import java.util.List;

import org.ksoap2.serialization.PropertyInfo;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapPrimitive;

import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;
import org.ksoap2.SoapEnvelope;


public class ServiceAccess {

private static String Namespace;
private static String MethodName;
private static String URL;
private SoapSerializationEnvelope Envelope;
private SoapObject SoapRequest;
private SoapPrimitive Response;
private List<PropertyInfo> methodParamList; 

public ServiceAccess(String webserviceUrl, String methodName) throws Exception
{
    setUrl(webserviceUrl);
    setMethodName(methodName);
    setNamespace("http://tempuri.org/");
    SoapRequest = new SoapObject(this.getNamespace(), this.getMethodName());
    methodParamList = new ArrayList<PropertyInfo>();
}
protected String getUrl()
{
    return URL;
}
protected void setUrl(String url)
{
    URL = url;
}
protected String getMethodName()
{
    return MethodName;
}
protected void setMethodName(String methodName)
{
    MethodName = methodName;
}
protected String getNamespace()
{
    return Namespace;
}
protected void setNamespace(String namespace)
{
    Namespace = namespace;
}
protected String SoapAction()
{
    String SOAP_ACTION = this.getNamespace() + this.getMethodName();
    return SOAP_ACTION;
}
protected void CreateSoapRequest() throws Exception
{
    try
    {
        if(methodParamList.size()>0){
            for(PropertyInfo propInfo : methodParamList)
            {
        SoapRequest.addProperty(propInfo.getName(), propInfo.getValue());
            }
        }
    }catch(Exception ex){
        throw ex;
    }

}
public <T> void addMethodParameters(String paramName, T val)
{
    PropertyInfo prop = new PropertyInfo();
    prop.setName(paramName);
    prop.setValue(val);
    prop.setType(val.getClass());
    methodParamList.add(prop);
}
protected SoapSerializationEnvelope createEnvelope() throws Exception
{
    this.CreateSoapRequest();
    try{

        Envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
        Envelope.dotNet = true;
        Envelope.setOutputSoapObject(SoapRequest);

    }catch(Exception ex){
        throw ex;
    }
    return Envelope;
}
public String getResponse() throws Exception
{
    try{

        this.createEnvelope();

        HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);

           androidHttpTransport.call(this.SoapAction(), Envelope);

           Response = (SoapPrimitive) Envelope.getResponse();

    }catch(Exception ex){
        throw ex;
    }
    return Response.toString();
}

}

您可以调整它以使用各种网页网址而不是网络服务网址。