-1

I have a simple graphql-server created using the Graphene-Django package. Now I can test the query and mutation successfully in the desktop browser at http://127.0.0.1:8000/graphql. For testing the query and mutation in the mobile app, I made a simple flutter mobile app using the graphql_flutter package. My flutter app works properly with Hasura and Heroku graphql endpoint. But it doesn't work with my Graphene-Django graphql endpoint. when I try to run my mobile app, it gives an error message:

ClientExceptation: Failed to connect to http://127.0.0.1:8000/graphql.

Please help me for solving the problem. Thank you so much.

Hossein Vejdani
  • 961
  • 8
  • 19

1 Answers1

0

I solve above mentioned problem.I exempt my Graphql endpoint from CSRF protection by wrapping the GraphQLView with the csrf_exempt decorator in urls.py file in django project, just same as this (see the source ):

from django.conf.urls import url, include
from django.contrib import admin
from django.views.decorators.csrf import csrf_exempt
from graphene_django.views import GraphQLView
from cookbook.schema import schema

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^graphql$', csrf_exempt(GraphQLView.as_view(graphiql=True,schema=schema))),
]

it should be mention that i used 'http://my-IPv4-address:8000/graphql' in flutter app for successfully connection after above mentioned modification in CSRF Protection settings. for achieving IPv4-address follow this guide. after that, i added my-IPv4-address to ALLOWED_HOSTS in settings.py file like this:

ALLOWED_HOSTS = ['192.168.x.xxx', 'localhost', '127.0.0.1']

and finally for running graphene-django server i use this command in cmd console:

(env) python ./manage.py runserver 0.0.0.0:8000
Hossein Vejdani
  • 961
  • 8
  • 19