Member 13366692 Ответов: 0

Мой WCF не работает android и VB


Я создал веб-сервис для подключения моего android-приложения к моему vb.net сайт, но он не работает , и я не знаю, почему, нет никакой ошибки? C мой сайт в smarterasp.net бесплатный хостинг

это мой java-код ?

public class MainActivity extends AppCompatActivity {
ArrayList<HashMap<String, String>> BrandList;
ListAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

    BrandList = new ArrayList<HashMap<String, String>>();
    final ListView list = (ListView) findViewById(R.id.list);

    **new GetBrandList(MainActivity.this,list).execute("http://"my site name!!!".etempurl.com/LocalAppTest/service1.svc/GetBrandName");**

}

class GetBrandList extends AsyncTask<String, Void, String> {

    String status= null;
    Activity context;
    ListView listView;

    public GetBrandList(Activity context, ListView listView){
        this.context =context;
        this.listView=listView;
    }
    protected void onPreExecute(){

    }
    protected String doInBackground(String... connUrl){
        HttpURLConnection conn=null;
        BufferedReader reader;

        try{
            final URL url=new URL(connUrl[0]);
            conn=(HttpURLConnection) url.openConnection();
            conn.addRequestProperty("Content-Type", "application/json; charset=utf-8");
            conn.setRequestMethod("GET");
            int result = conn.getResponseCode();
            if(result==200){

                InputStream in=new BufferedInputStream(conn.getInputStream());
                reader = new BufferedReader(new InputStreamReader(in));
                StringBuilder sb=new StringBuilder();
                String line = null;

                while((line=reader.readLine())!=null){
                    status=line;
                }

            }


        }catch(Exception ex){
            ex.printStackTrace();
        }
        return status;
    }
    protected void onPostExecute(String result){
        super.onPostExecute(result);

        if(result!=null){
            try{

                ArrayList<String> stringArrayList = new ArrayList<String>();
                JSONArray jsonArray = new JSONArray(result);
                for(int i=0; i<jsonArray.length(); i++){
                    JSONObject object = jsonArray.getJSONObject(i);
                    String Brand= object.getString("Brand");

                    HashMap<String, String> itemList = new HashMap<String, String>();
                    itemList.put("Brand",Brand);

                    BrandList.add(itemList);
                }
                adapter = new SimpleAdapter(MainActivity.this, BrandList,R.layout.brandlist, new String[]{"Brand"},new int[]{R.id.txtBrand});
                ((AdapterView<ListAdapter>) listView).setAdapter(adapter);


            }catch (Exception ex){
                ex.printStackTrace();
            }
        }else{
            Toast.makeText(MainActivity.this,"Could not get any data.", Toast.LENGTH_LONG).show();
        }
    }
}

это мой файл service1.ВПВ.в CS :
public class Service1 : IService1
{
    private string conStr = "Data Source="my connection string!!!";";
    public List<BrandName> GetBrandName()
    {
        List<BrandName> brandList = new List<BrandName>();
        SqlConnection connection = new SqlConnection(this.conStr);
        connection.Open();
        SqlCommand cmd = new SqlCommand("SELECT * from Password", connection);
        cmd.CommandType = CommandType.Text;
        SqlDataReader sdr = cmd.ExecuteReader();
        while (sdr.Read())
        {
            BrandName brand = new BrandName();
            brand.Brand = sdr["BrandName"].ToString();
            brandList.Add(brand);

        }
        return brandList.ToList();
    }

    }

}

мой файл service1.в CS
public interface IService1
{
    [OperationContract]
    [WebGet(UriTemplate = "GetBrandName")]
    List<BrandName> GetBrandName();
    [OperationContract]
    [WebInvoke(Method = "POST", UriTemplate = "AddBrand", BodyStyle = WebMessageBodyStyle.WrappedRequest, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
    int AddBrand(string brand);
}
[DataContract]
public class BrandName
{
    string brand;
    [DataMember]
    public string Brand
    {
        get { return brand; }
        set { brand = value; }
    }
}

является ли этот код правильным "url-адресом службы" :
new GetBrandList(MainActivity.this,list).execute("http://"my site name!!!".etempurl.com/LocalAppTest/service1.svc/GetBrandName");


Что я уже пробовал:

повторно загружайте каждую вещь !!! в том числе в разделе сайт и база данных

Mike V Baker

Вы пробовали ввести URL-адрес в браузер? Когда я делаю это с помощью своих сервисов, я получаю json-файл с содержимым, которое получит приложение. (предполагая, что он возвращает json)

Как долго вы ждали ответа от сервера, когда запускали приложение для Android? В моем случае значение таймаута-это что-то очень длинное.

О! А как насчет этого в вашей SqlCommand? "Выберите * из пароля"

Является ли это опечаткой от передачи кода к вопросу или это так, как это делается в вашем сервисе?

0 Ответов